AlertDialog弹出时背景明暗程度调整

  今天有个需求是把弹出AlertDialog时的变暗的背景调整得不要那么暗。

  一开始懒惰就直接百度中文搜索,结果找到的代码试了几次都不行。

  后来老老实实开google、stackoverflow搜索,搜出页面:StackOverflow问答页面,然后再去看了看谷歌文档:dimAmount变量说明,才把效果实现了。

  直接展示使用代码,直观有效率:

  

 1 //创建一个AlertDialog
 2 AlertDialog alertDialog = new AlertDialog.Builder(context).setView(dialogView).create();
 3 //展示AlertDialog
 4 alertDialog.show();
 5 //调整明暗度的代码一定要在show()之后执行
 6 //获取一个LayoutParams对象用于后面设置回去
 7 WindowManager.LayoutParams lp = alertDialog.getWindow().getAttributes();
 8 //调整明暗度,float值,完全透明不变暗是0.0f,完全变暗不透明是1.0f
 9 lp.dimAmount=0.0f;
10 //必须要设置回去
11 alertDialog.getWindow().setAttributes(lp);
12 //根据谷歌文档,给对应的Window添加FLAG_DIM_BEHIND标志位,dimAmount值才有效。
13 alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
View Code

 

  dimAmount设为0.0f的效果:

  dimAmount=0.0f

 

  dimAmount设为1.0f的效果:

  dimAmount=1.0f

posted @ 2015-07-24 12:15  「Shawlaw」  阅读(1103)  评论(0)    收藏  举报