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黑色半透明dialog背景,Android开发中Dialog半透明背景消失的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: steam宝石有什么用
- 下一篇: 台式机组装的配件选择规则台式机组装的配件