1、布局对话框XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:background="#FFFFFFFF" android:minWidth="280dp" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="44dp" android:background="#11243b" > <TextView android:id="@+id/coolc_dialog_title" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="提醒" android:textColor="@android:color/white" android:textSize="18sp" android:textStyle="bold" tools:ignore="HardcodedText" /> <Button android:id="@+id/coolc_dialog_close" android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:layout_marginTop="7dp" android:background="@drawable/btn_close" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" > <View android:layout_width="match_parent" android:layout_height="20dp" /> <TextView android:id="@+id/coolc_dialog_tip" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@android:color/black" android:textSize="20sp"/> <View android:layout_width="match_parent" android:layout_height="20dp" /> <Button android:id="@+id/coolc_dialog_confirm" android:layout_width="100dp" android:layout_height="41dp" android:background="@drawable/btn_green" android:text="确定" android:textColor="@android:color/white" android:textSize="20sp" tools:ignore="HardcodedText" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="20dp" /> </LinearLayout>
2、在values下的styles添加下面格式
<style name="coolcDialog" parent="android:style/Theme.Dialog"> <!-- 取消黑色背景,使得弹出对话框为半透明 --> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style>
3、创建一个继承Dialog的类
1 /** 2 * 自定议对话框 3 * 4 * @author vincent 5 * 6 */ 7 public class CoolCDialog extends Dialog { 8 private CoolCDialogClickLisener coolCDialogClickLisener; 9 private CoolCDialog mSelf; 10 private String msg; 11 12 public CoolCDialogClickLisener getCoolCDialogClickLisener() { 13 return coolCDialogClickLisener; 14 } 15 16 public void setCoolCDialogClickLisener( 17 CoolCDialogClickLisener coolCDialogClickLisener) { 18 this.coolCDialogClickLisener = coolCDialogClickLisener; 19 } 20 21 public CoolCDialog(Context context) { 22 super(context); 23 // TODO Auto-generated constructor stub 24 mSelf = this; 25 } 26 27 public void setMsg(String msg) { 28 this.msg = msg; 29 } 30 31 public CoolCDialog(Context context, int theme) { 32 super(context, theme); 33 mSelf = this; 34 } 35 36 @Override 37 protected void onCreate(Bundle savedInstanceState) { 38 // TODO Auto-generated method stub 39 super.onCreate(savedInstanceState); 40 this.setContentView(R.layout.coolc_dialog); 41 this.setCancelable(false);// 不可以用“返回键”取消 42 TextView msgView = (TextView) this.getWindow().findViewById( 43 R.id.coolc_dialog_tip); 44 msgView.setText(msg); 45 // 查找关闭按钮 设置监听 46 View close = this.getWindow().findViewById(R.id.coolc_dialog_close); 47 close.setOnClickListener(new android.view.View.OnClickListener() { 48 @Override 49 public void onClick(View v) { 50 mSelf.dismiss(); 51 } 52 53 }); 54 55 // 查找确认按钮 设置监听 56 View comfirm = this.getWindow().findViewById(R.id.coolc_dialog_confirm); 57 comfirm.setOnClickListener(new android.view.View.OnClickListener() { 58 @Override 59 public void onClick(View v) { 60 mSelf.dismiss(); 61 if (coolCDialogClickLisener != null) { 62 coolCDialogClickLisener.onClick(v, mSelf); 63 } 64 } 65 66 }); 67 } 68 69 public interface CoolCDialogClickLisener { 70 71 public void onClick(View v, CoolCDialog dialog); 72 } 73 }
4、自定义类使用
1 CoolCDialog mdialog = new CoolCDialog(this, R.style.coolcDialog); 2 mdialog.setMsg("恭喜您,验证码发送成功。"); 3 mdialog.setCoolCDialogClickLisener(new CoolCDialogClickLisener() { 4 5 @Override 6 public void onClick(View v, CoolCDialog dialog) { 7 // TODO Auto-generated method stub 8 } 9 }); 10 mdialog.show();
5、效果图