Android 对话框进阶(自定义)
来源:互联网 发布:网络发票系统初始密码 编辑:程序博客网 时间:2024/06/01 10:51
要产生对话框,特别是产生提醒对话框.网上例子全是.都是抄来抄去的.用了AlertDialog.builder类,这里就不说了.
我要说的是如何定制一个对话框.就是按自己的想要的模样产生这个对话框.如何实现透明? 如何改变对话框的显示位置? 这需要深入研究.
要定制对话框.一般需要定义一个继承自Dialog的类.例子
public class MousePanel extends Dialog implements View.OnClickListener{ ImageButton btn1=null; ImageButton btn2=null; ImageButton btn3=null; Window window=null; public MousePanel(Context context){ super(context); } public void setDisplay(){ setContentView(R.layout.mouse); setProperty(); setTitle("mouse panel"); show(); getInstance(); setListener(); }
要显示这个对话框,只要创建该类对象.然后调用该函数即可.
public void setProperty(){ window=getWindow(); 得到对话框的窗口. WindowManager.LayoutParams wl = window.getAttributes();// wl.x =0; 这两句设置了对话框的位置.// wl.y =180; wl.alpha=0.3f; 这句设置了对话框的透明度 wl.gravity=Gravity.BOTTOM; window.setAttributes(wl); } public void getInstance(){ btn1=(ImageButton)findViewById(R.id.mouse_button1); btn2=(ImageButton)findViewById(R.id.mouse_button2); btn3=(ImageButton)findViewById(R.id.mouse_button3); } void setListener(){ btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); } public void onClick(View view){ switch(view.getId()){ case R.id.mouse_button1: dismiss(); break; case R.id.mouse_button2: case R.id.mouse_button3: dismiss(); new MyDialog(getContext()).setDisplay(); break; default: } }}
主要显示也是用了setContentView()来加载xml来显示你的对话框.看来每一屏幕显示也都是在窗口中显示的.
一定得搞清楚类对象和窗口的关系. 其实两着有很大区别. 一个类对象通过调用系统函数来驱动显卡来创建窗口.这两者是完全不同的东西.
在定制窗口是比较有用的接口还有 dismiss用来销毁窗口.销毁窗口不代表销毁类对象是吧,只是把让屏幕刷新.那显卡里那块数据清零了.
- Android 对话框进阶(自定义)
- Android 对话框(三)自定义对话框
- android自定义对话框(AlertDialog)
- Android-Dialog对话框 全解(普通对话框,单选对话框,多选对话框,列表对话框,自定义对话框,Activity对话框)
- android中的对话框:自定义对话框
- Android学习:不再提示对话框(创建自定义对话框)
- Android进阶练习-自定义视图(1)
- Android进阶练习-自定义视图(2)
- Android进阶练习-自定义视图(3)
- android-进阶(3)-自定义view(1)
- Android自定义View(二)进阶
- Android自定义控件进阶篇(一)
- Android自定义View(进阶篇)
- Android进阶之自定义view(一)
- Android进阶之自定义view(二)
- Android进阶之自定义view(三)
- Android进阶之自定义view(四)
- 【Android进阶之自定义View(一)】
- 技术牛人博客收集
- 修改HTML中的cursor
- 关于WinSocket
- Linux文字界面启动
- 共享Windows下C++库之线程池篇二
- Android 对话框进阶(自定义)
- Visual C++编程全能词典
- Jquery easyui 界面设置存档edit.js
- 简明 Vim 练级攻略 http://coolshell.cn/articles/5426.html#more-5426
- 牛人博客/网站
- ioctlsocket()
- VS2008快捷键大全
- 标准C语言头文件
- 常用vi命令