http://www.jb51.net/article/83319.htm
这篇文章主要介绍了Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继承Dialog类来制作自己的对话框,需要的朋友可以参考下
自定义dialog基础版
很多时候,我们在使用android sdk提供的alerdialog的时候,会因为你的系统的不同而产生不同的效果,就好比如你刷的是MIUI的系统,弹出框都会在顶部显示!这里简单的介绍自定义弹出框的应用。
首先创建布局文件dialog:
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
其次创建MyCustomDialog类继承Dialog:
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
|
最后再完成MainActivity:
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
效果如图:
炫酷升级版
在日常开发过程中,Android自带的对话框控件美观程度远远满足不了开发的要求,特别是相对于移植开发,下面描述的demo是基于1280X720分辨率实现的效果。
自定义对话框和上次记录的自定义RatingBar非常类似,都是通过在styles.xml里面继承父类(此处是Dialog)的样式。
styles.xml
1 2 3 4 5 6 7 8 |
|
我们下面将要做下面三个效果:
(1)带选择确认框的提示
(2)图片+文字的提示
(3)图片+图片
实现上面三个效果我们只需要继承一个Dialog类,然后根据不同的布局添加相对应的xml布局就可以简单实现功能扩展的效果了。
1.继承Dialog类,重写父类的方法,并添加子类自己的方法。
NoticeDialog.java,继承于Dialog父类,实现了点击事件的接口,如果有确认选择框,则把确认选择框的控件添加click事件监听,通过在回调方法在UI主线程里面实现界面更新和逻辑操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
2.对应上面三个效果,添加不同的xml布局。
(1)带选择确认框的提示dialog_notice_choise.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
(2)图片+文字的提示dialog_notice_ing.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
(3)图片+图片dialog_notice_finish.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
3.在MainActivity实现对自定义对话框的添加显示。
MainActivity.java,在进行对话框切换显示的时候,只需要设置不同的xml配置文件就行了。(注意:NoticeDialog里面的构造方法的context参数只能是XXXActivity.this,不能是通过getApplicationContext获取的context对象)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
|