设置对话框位置,设置对话框透明度等
2016-07-22 22:32
239 查看
今天给大家讲一些关于对话框的小知识点。
1.设置对话框的位置
2.android默认AlterDialog弹出的对话框无论单击任何按钮都会关闭对话框,如何才能做到自定义它的关闭与开启
通过常规方法无法阻止对话框的关闭,但可以采用一种欺骗系统的方法来达到目的。在AlterDialog类中有一个mShowing变量,当该变量为true时表示对话框正在显示,系统会关闭对话框。如果mShowing变量是false,系统认为对话框已经关闭而不再关闭对话框。因此只需要在按钮单击实践中将该变量设置为false,系统就不会自动关闭对话框了。
执行上面的代码后,关闭对话框的dismiss()方法将失效,因此,如果想关闭对话框,还需要将AlterDialog.mShowing变量的值设为true;
3.改变对话框的透明度
通过设置Window的alpha属性可以改变对话框的透明度
1.设置对话框的位置
AlterDialog dialog=new AlterDialog.Builder(this) .setMessage("在顶端显示对话框").setPositiveButton("确定",null).create(); Window window=dialog.getWindow(); //调用setGravity方法在屏幕左上方显示 window.setGravity(Gravity.TOP|Gravity.LEFT); dialog.show();
2.android默认AlterDialog弹出的对话框无论单击任何按钮都会关闭对话框,如何才能做到自定义它的关闭与开启
通过常规方法无法阻止对话框的关闭,但可以采用一种欺骗系统的方法来达到目的。在AlterDialog类中有一个mShowing变量,当该变量为true时表示对话框正在显示,系统会关闭对话框。如果mShowing变量是false,系统认为对话框已经关闭而不再关闭对话框。因此只需要在按钮单击实践中将该变量设置为false,系统就不会自动关闭对话框了。
try{ Field field=dialog.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); //将mShowing变量设为fals,好让系统认为对话框已关闭 field.set(dialog,false); }catch(Exception e){ }
执行上面的代码后,关闭对话框的dismiss()方法将失效,因此,如果想关闭对话框,还需要将AlterDialog.mShowing变量的值设为true;
3.改变对话框的透明度
通过设置Window的alpha属性可以改变对话框的透明度
AlterDialog dialog=new AlterDialog.Builder(this) .setMessage("透明对话框").setPositiveButton("确定",null).create(); Window window =dialog.getWindow(); WindowManager.LayoutParam lp=window.getAttributes(); //设置透明度为0.7f //alpha的属性值的范围为0.0f到1.0f,1.0f(默认值)不透明,0.0f完全透明 lp.alpha=0.7f; window.setAttributes(lp); dialog.show();
相关文章推荐
- 2016第30周五
- 使用gulp+Babel 编译 ES6
- 美团2016在线编程题 最大差(贪心)
- Android-Activity生命周期小记
- HTML 超级链接详细讲解
- C/C++面试问题汇总
- <C++略识>之多重继承、多继承、虚继承
- PHP写在线视频直播技术详解
- elk 索引
- UIWindow
- elk 索引
- elk 索引
- 基础回顾之:web.xml配置详解
- 5.5确认范围
- Java基础之(十)基本类型的类型转换
- HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结
- 5.5确认范围
- zookeeper 笔记
- 定义范围中的备选方案生成、横向思维、创建WBS、工作包定义、WBS、确认范围过程和实施质量过程的关系、联合应用设计和质量功能展开QFD
- zkw算法