当前位置: 首页 > 编程笔记 >

Android开发中Dialog半透明背景消失

盛琪
2023-03-14
本文向大家介绍Android开发中Dialog半透明背景消失,包括了Android开发中Dialog半透明背景消失的使用技巧和注意事项,需要的朋友参考一下

近日,遇到一个Dialog半透明背景消失的问题,背景需求是自定义Dialog实现警告提示框:

// 初始化警告弹出框 
alertDialog = new EmpAlertView(context, Utils.getIdByName(context, "style", "alert_style")); 
alertDialog.setCanceledOnTouchOutside(false); 
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
layout = inflater.inflate(Utils.getIdByName(context, "layout", "alertview"), null); 
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
// 设置半透明背景 
Window window = alertDialog.getWindow(); 
WindowManager.LayoutParams lp = window.getAttributes(); 
lp.alpha = 0.9f; 
window.setAttributes(lp); 
alertDialog.setContentView(layout);

进行页面操作及用户提示,一切显示正常,如图:

当按下屏幕电源按钮,再次点亮屏幕,发现Dialog半透明的灰暗背景消失了.....

解决方法:设置window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);修改后如下:

// 初始化警告弹出框 
alertDialog = new EmpAlertView(context, Utils.getIdByName(context, "style", "alert_style")); 
alertDialog.setCanceledOnTouchOutside(false); 
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
layout = inflater.inflate(Utils.getIdByName(context, "layout", "alertview"), null); 
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
Window window = alertDialog.getWindow(); 
WindowManager.LayoutParams lp = window.getAttributes(); 
lp.alpha = 0.9f; 
window.setAttributes(lp); 
// 防止按下再重新开启屏幕电源,原先变暗的背景变白色 
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
alertDialog.setContentView(layout);

以上所述是小编给大家介绍的Android开发中Dialog半透明背景消失,希望对大家有所帮助,如果大家有任何疑问,欢迎给我留言,小编会及时回复大家的!

 类似资料:
  • 本文向大家介绍Android编程实现设置按钮背景透明与半透明及图片背景透明的方法,包括了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法。分享给大家供大家参考,具体如下: Button或者ImageButton的背景设为透明或者半透明: 半透明 透明 颜色和不

  • 通过使用启用透明背景功能,可以使用自定义图片作为背景。 controller.setTransparentBackground( true );

  • 如何删除Android对话框中的黑色背景。这张照片显示了问题所在。

  • 问题内容: 我有一个DIV,我想放置一个图案作为背景。此图案是灰色的。为了使它更好一点,我想在上面放一个透明的颜色“层”。以下是我尝试过的方法,但是没有用。有没有办法将彩色图层放在背景图像上? 这是我的CSS: 问题答案: 这里是: 对此的HTML: 当然,如果其中没有其他元素,则需要为该类定义宽度和高度

  • 我在这里的要求是使我的孩子突出,而没有的白色背景-(因此AnchorPane需要透明),我如何实现这一点?

  • 本文向大家介绍Android Menu半透明效果的开发实例,包括了Android Menu半透明效果的开发实例的使用技巧和注意事项,需要的朋友参考一下 不知道大家是否用过天天动听,对于它界面上的半透明Menu效果,笔者感觉非常漂亮。下面是天天动听半透明Menu的截图,欣赏下吧:        感觉还不错吧?那么如何实现这种半透明Menu效果呢?本文就重点讨论并给出这种Menu的具体代码实现过程。