普通的确认对话框


NormalDialog.java
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class NormalDialog  extends Dialog implements android.view.View.OnClickListener{
    private  TextView tv_explain;
    private  TextView tv_ok;
    private  TextView tv_normal_title;
    private  TextView tv_sub_title;
    private  ImageView iv_cancel;
    public NormalDialog(Context context) {
        super(context,R.style.DialogTheme);
        initView();
    }
    public NormalDialog(Context context, int theme) {
        super(context, theme);
        initView();
    }
    private void initView() {
        setContentView(R.layout.dialog_normal);
        iv_cancel=(ImageView) findViewById(R.id.iv_cancel);
        iv_cancel.setOnClickListener(this);
        tv_explain=(TextView) findViewById(R.id.tv_explain);
        tv_ok=(TextView) findViewById(R.id.tv_ok);
        tv_normal_title=(TextView) findViewById(R.id.tv_normal_title);
        tv_sub_title= (TextView) findViewById(R.id.tv_sub_title);
        tv_ok.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.iv_cancel:
            dismiss();
            onCancleClick(v);
            break;
        case R.id.tv_ok:
            dismiss();
            onSureClick(v);
            break;
        default:
            break;
        }
    }
    public TextView getExpalinTextView() {
        return tv_explain;
    }
    public TextView getTitleView() {
        return tv_normal_title;
    }
    public TextView getTvOk(){
        return tv_ok;
    }
    public TextView getsubTitleTextView() {
        return tv_sub_title;
    }
    public void onSureClick(View v) {
    }
    public void onCancleClick(View v) {
    }

}


确定取消对话框


dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:padding="28dp" >
    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:text="温馨提示"
        android:textColor="#666666"
        android:textSize="17sp" />
    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_title"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:gravity="center"
        android:text="你确定要进入"
        android:textColor="#a8a8a8"
        android:textSize="15sp" />
    <TextView
        android:id="@+id/tv_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="6dp"
        android:gravity="center"
        android:text="喜洋洋和灰太狼"
        android:textColor="#e472a3"
        android:textSize="15sp" />
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="6dp"
        android:gravity="center"
        android:text="的直播间吗?"
        android:textColor="#a8a8a8"
        android:textSize="15sp" />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_2"
        android:layout_marginTop="26dp" >
        <View
            android:id="@+id/v_center"
            android:layout_width="1px"
            android:layout_height="10dp"
            android:layout_centerHorizontal="true"
            android:background="#00000000" />
        <TextView
            android:id="@+id/tv_cancle"
            android:layout_width="80dp"
            android:layout_height="36dp"
            android:layout_alignParentLeft="true"
            android:background="@drawable/tv_cancle_color_bg"
            android:gravity="center"
            android:text="取消"
            android:textColor="@drawable/tv_cancle_color_text"
            android:textSize="15sp" />
        <TextView
            android:id="@+id/tv_sure"
            android:layout_width="80dp"
            android:layout_height="36dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/tv_sure_color_bg"
            android:gravity="center"
            android:text="进入"
            android:textColor="@drawable/tv_sure_color_text"
            android:textSize="15sp" />
    </RelativeLayout>

</RelativeLayout>


MyDialog.java
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
public class MyDialog extends Dialog implements android.view.View.OnClickListener {
    private TextView tv_sure;
    private TextView tv_cancle;
    private TextView tv_content;
    public MyDialog(Context context) {
        super(context, R.style.DialogTheme);
        initView();
    }
    public MyDialog(Context context, int theme) {
        super(context, theme);
        initView();
    }
    private void initView() {
        setContentView(R.layout.dialog);
        tv_sure = (TextView) findViewById(R.id.tv_sure);
        tv_cancle = (TextView) findViewById(R.id.tv_cancle);
        tv_content = (TextView) findViewById(R.id.tv_content);
        tv_sure.setOnClickListener(this);
        tv_cancle.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.tv_sure:
            dismiss();
            onSureClick(v);
            break;
        case R.id.tv_cancle:
            dismiss();
            onCancleClick(v);
            break;
        default:
            break;
        }
    }
    public TextView getContentTextView() {
        return tv_content;
    }
    public void onSureClick(View v) {
    }
    public void onCancleClick(View v) {
    }

}


填写信息对话框


dialog_repalce_nick.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:orientation="vertical"
    android:paddingBottom="32dp"
    android:paddingLeft="18dp"
    android:paddingRight="18dp"
    android:paddingTop="18dp" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp" >
        <ImageView
            android:id="@+id/iv_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:padding="5dp"
            android:src="@drawable/dialog_close_selector" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/iv_cancel"
            android:layout_alignParentLeft="true"
            android:layout_alignTop="@id/iv_cancel"
            android:layout_centerVertical="true"
            android:gravity="center_vertical"
            android:text="修改昵称"
            android:textColor="#666666"
            android:textSize="17sp" />
    </RelativeLayout>
    <TextView
        android:id="@+id/tv_modify_state"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="(还可免费修改一次)"
        android:textColor="#a8a8a8"
        android:textSize="13sp" />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="24dp" >
        <TextView
            android:id="@+id/tv_former_nick"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:ellipsize="end"
            android:singleLine="true"
            android:text="原昵称:包青天"
            android:textColor="#a8a8a8"
            android:textSize="15sp" />
        <TextView
            android:id="@+id/tv_new_nick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/tv_former_nick"
            android:layout_marginTop="16dp"
            android:gravity="center"
            android:text="新昵称:"
            android:textColor="#808080"
            android:textSize="15sp" />
        <EditText
            android:id="@+id/et_new_nick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/tv_new_nick"
            android:layout_alignTop="@id/tv_new_nick"
            android:layout_toRightOf="@id/tv_new_nick"
            android:background="@drawable/edit_input"
            android:ellipsize="end"
            android:minWidth="50dp"
            android:singleLine="true"
            android:textColor="#808080"
            android:textSize="15sp" >
        </EditText>
    </RelativeLayout>
    <TextView
        android:id="@+id/replace_ok"
        android:layout_width="160dp"
        android:layout_height="36dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:background="@drawable/tv_sure_color_bg"
        android:gravity="center"
        android:text="保存"
        android:textColor="#fff"
        android:textSize="16sp" />

</LinearLayout>


ReplaceNickDialog .java
import android.app.Dialog;
import android.content.Context;
import android.os.Handler;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class ReplaceNickDialog extends Dialog implements View.OnClickListener {
    private static final int MAX_LENGTH = 10;
    private TextView tv_modify_state;
    private TextView tv_replace_ok;
    private TextView tv_former_nick;
    private EditText et_new_nick;
    private ImageView iv_cancel;
    private OnEventListenerV2 mOnEventListenerV2;//回调
    private String new_nick;
    private boolean mIsNeedPay;//是否需要付费
    private Handler mHandler;
    private InputMethodManager imm;
    public ReplaceNickDialog(Context context, boolean isNeedPay, 
OnEventListenerV2 OnEventListenerV2) {
        super(context, R.style.DialogTheme);
        initView(isNeedPay, OnEventListenerV2);
    }
    public ReplaceNickDialog(Context context, int theme, boolean isNeedPay, 
OnEventListenerV2 OnEventListenerV2) {
        super(context, theme);
        initView(isNeedPay, OnEventListenerV2);
    }
    private void initView(boolean isNeedPay, OnEventListenerV2 onEventListenerV2) {
        setContentView(R.layout.dialog_repalce_nick);
        mIsNeedPay = isNeedPay;
        mOnEventListenerV2 = onEventListenerV2;
        tv_former_nick = (TextView) findViewById(R.id.tv_former_nick);
        tv_replace_ok = (TextView) findViewById(R.id.replace_ok);
        et_new_nick = (EditText) findViewById(R.id.et_new_nick);
        imm = (InputMethodManager) et_new_nick.getContext().
getSystemService(Context.INPUT_METHOD_SERVICE);
        iv_cancel = (ImageView) findViewById(R.id.iv_cancel);
        tv_modify_state = (TextView) findViewById(R.id.tv_modify_state);
        tv_replace_ok.setOnClickListener(this);
        iv_cancel.setOnClickListener(this);
        tv_former_nick.setText("原昵称:" + "包青天");
        et_new_nick.setText("包青天");
        et_new_nick.selectAll();
        if (mIsNeedPay) tv_modify_state.setText("1000秀币/次");
        else tv_modify_state.setText("(还可免费修改一次)");
        mHandler = new Handler();
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                showInputMeth();
            }
        }, 200);
    }
    @Override
    public void dismiss() {
        if (mHandler != null) mHandler.removeCallbacksAndMessages(null);
        mHandler = null;
        hideInputMeth();
        super.dismiss();
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.replace_ok:
            new_nick = et_new_nick.getText().toString().trim();
            if (new_nick.length() == 0 || new_nick.equals("")) Toast.makeText(getContext(), "新昵称不能为空", 0).show();
            else if (new_nick.length() > MAX_LENGTH) Toast.makeText(getContext(), "新昵称不能超过" + MAX_LENGTH + "个字", 0).show();
            else if (new_nick.equals("包青天")) Toast.makeText(getContext(), "新昵称不能与原昵称相同", 0).show();
            else asyncModifyNickName(new_nick);
            break;
        case R.id.iv_cancel:
            this.dismiss();
            break;
        }
    }
    private void asyncModifyNickName(final String new_name) {
    }
    //显示输入法
    public void showInputMeth() {
        if (et_new_nick != null) {
            et_new_nick.setFocusable(true);
            imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
        }
    }
    //隐藏输入法
    private void hideInputMeth() {
        if (et_new_nick != null) imm.hideSoftInputFromWindow(et_new_nick.getWindowToken(), 0);
    }
}
interface OnEventListenerV2 {
    public void onEventListener(boolean successed, String msg, Object obj);

}


带图片的对话框


dialog_buy_car.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:paddingBottom="28dp"
    android:paddingLeft="18dp"
    android:paddingRight="18dp"
    android:paddingTop="18dp" >
    <ImageView
        android:id="@+id/iv_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:padding="5dp"
        android:src="@drawable/dialog_close_selector" />
    <TextView
        android:id="@+id/tv_car_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/iv_close"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@id/iv_close"
        android:gravity="center"
        android:paddingLeft="10dp"
        android:text="兰博基尼"
        android:textColor="#666666"
        android:textSize="17sp" />
    <ImageView
        android:id="@+id/iv_car_name"
        android:layout_width="110dp"
        android:layout_height="71dp"
        android:layout_below="@id/tv_car_name"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:src="@drawable/icar_store_dialog_defult" />
    <TextView
        android:id="@+id/tv_submit_buy"
        android:layout_width="80dp"
        android:layout_height="36dp"
        android:layout_alignParentRight="true"
        android:layout_below="@id/iv_car_name"
        android:layout_marginRight="10dp"
        android:background="@drawable/tv_sure_color_bg"
        android:gravity="center"
        android:text="购买"
        android:textColor="#fff"
        android:textSize="16sp" />
    <TextView
        android:id="@+id/tv_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv_submit_buy"
        android:layout_alignLeft="@id/tv_car_name"
        android:layout_alignTop="@id/tv_submit_buy"
        android:layout_marginLeft="10dp"
        android:gravity="left|center_vertical"
        android:text="3000 秀币/月"
        android:textColor="#666666"
        android:textSize="14sp" />

</RelativeLayout>


进度对话框


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:background="@drawable/bg_progress_dialog"
    android:orientation="vertical" >
    <ProgressBar
        android:id="@+id/pgb_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="18dp"
        android:indeterminateDrawable="@drawable/progress_white" />
    <TextView
        android:id="@+id/tv_messag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pgb_progress"
        android:layout_centerInParent="true"
        android:layout_marginTop="5dp"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="正在加载中…"
        android:textColor="#fff"
        android:textSize="18sp"
        android:visibility="visible" />

</RelativeLayout>


进度条的背景
progress_white.xml
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
            android:drawable="@drawable/progress_white_icon"
            android:fromDegrees="0.0"
            android:toDegrees="360.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%" />
    </item>

</layer-list>


通用项

整个对话框的background,背景色-白色,圆角3dp

dialog_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#fff" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>



背景选择器
tv_cancle_color_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#80ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>


文字颜色选择器
tv_cancle_color_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#80ffa726" android:state_pressed="true"></item>
    <item android:color="#ffa726"></item>

</selector>  




背景选择器
tv_sure_color_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><shape>
            <solid android:color="#80ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item android:state_enabled="false"><shape>
            <solid android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item><shape>
            <solid android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>


文字颜色选择器
tv_sure_color_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#7fffffff"></item>
    <item android:color="#fff"></item>

</selector>


关闭按钮图片选择器
dialog_close_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" android:drawable="@drawable/btn_clean_white_pressed"></item>
    <item android:drawable="@drawable/btn_clean_white"></item>

</selector>


对话框样式:背景透明,无标题栏,windowFrame框为无
styles.xml
<style name="DialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFrame">@null</item>

</style>


95秀-自定义对话框 dialog 合集的更多相关文章

  1. Android软件开发之盘点全部Dialog对话框大合集(一)

    对话框大合集 今天我用自己写的一个Demo和大家具体介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 个button   通过调用setPositiveButton方法和 setNeg ...

  2. 关于JFace的自定义对话框(Dialog类)

    仅仅是使用MessageDialog,InputDialog等JFace中现成的对话框类是无法满足实际项目开发需要的. 很多时候都需要自己定制对话框,自定义对话框只要在Dialog类的基础上作扩展就行 ...

  3. Android自定义对话框(Dialog)位置,大小

    代码: package angel.devil; import android.app.Activity;import android.app.Dialog;import android.os.Bun ...

  4. Android 自定义对话框(Dialog)位置,大小

    代码: package angel.devil; import android.app.Activity; import android.app.Dialog; import android.os.B ...

  5. Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)

    目录 一.提示信息对话框: 二.单选对话框: 三.多选对话框: 四.自定义对话框: 演示项目完整代码: 一.提示信息对话框: //显示提示消息对话框 private void showMsgDialo ...

  6. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

  7. Android中的对话框AlertDialog使用技巧合集-转载

    Android中的对话框AlertDialog使用技巧合集     文章来自:http://blog.csdn.net/blue6626/article/details/6641105   今天我用自 ...

  8. Android项目实战(七):Dialog主题Activity实现自定义对话框效果

    想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大 ...

  9. android继承Dialog实现自定义对话框

    有时需要自定义对话框,可以使用AlterDialog.Bulider,比如下面的代码片段 new AlertDialog.Builder(self) .setTitle("标题") ...

随机推荐

  1. TalkingData Cocos2dx在android平台使用总结

    前言:最近发现很多朋友在使用TalkingData游戏版本Cocos2dx SDK使用过程中会出现的一些问题,今天来做一下总结,希望对您有所帮助: 首先非常感谢您使用TalkingData游戏统计平台 ...

  2. Android学习----AndroidManifest.xml文件解析

    一个Android应用程序的结构: 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了pack ...

  3. STL容器介绍

    STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string. 二 : 关联容器,     有set, multiset, map, mulmap, h ...

  4. extjs combobox 设置下拉时显示滚动条 设置显示条数

    extjs在点击下拉时如果没有限制它的高度,那么它的默认最大高度是300,显示的时候就会显示300的高度,知道选项内容超过这个高度时才会自动显示滚动条,往往在有些时候我们希望让combobox显示一个 ...

  5. history对象属性和方法

    history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起,history是window对象的属性,因此每个浏览器窗口.每个标签页乃至每个框架,都有自 己的history对象和特定的wind ...

  6. MYSQL 存储过程1、SQL存储过程的基础知识

    在深入理解MySq之前,我们先理下一些简单的问题 Q:什么是存储过程?(stored procedure) A:是一段写好的SQL代码,特别的就是它是存在数据库的目录里.所以外部程序可以直接调用数据库 ...

  7. CodeForces 478B 第六周比赛B题

    B - B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Descriptio ...

  8. No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'

    运行代码是出现了这个错误,No Entity Framework provider found for the ADO.NET provider with invariant name 'System ...

  9. 脚本两则--用于快速部署HADOOP,SPARK这些(特别是VM虚拟机模板部署出来的)。。

    感觉可能只是适合我自己的部署习惯吧,且只针对CENTOS6及以下版本,以后有时间,可能还是要改进.. 1,从VM的模块产生的虚拟机,如何快速搞定网络配置? #!/bin/bash #usage:./i ...

  10. 14.4.3 Adaptive Hash Index 自适应hash index

    14.4.3 Adaptive Hash Index 自适应hash index 自适应hash index(AHI) 让InnoDB 执行更像内存数据库在系统使用合适的负载组合和足够的内存用于Buf ...