編輯:關於Android編程
近日,遇到一個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半透明背景消失,希望對大家有所幫助,如果大家有任何疑問,歡迎給我留言,小編會及時回復大家的!
本文主要內容就是用marix加上漸變色實現圖片倒影的效果,步驟如下: 1. 獲取需要倒影效果的圖片,這裡取原圖片的一半 2. 添加顏色漸變到倒影圖片上
計算每個線程的下載起始終止位置公式如下文件讀寫方式4中類型工程源碼目錄package cn.itcast.download;import java.io.File;imp
Android Studio 打包及引用 aar1、 簡述在比較大的 Android 項目的開發中,我們經常會遇到工程、jar 包等等之間相互引用的方式。一般我們通過在
今天是國慶,首先祝大家國慶快樂!漫漫國慶長假,然而我卻只能宅宿捨,但時間總不能這樣白白浪費了,這樣的時候,沒出去浪,那麼,就總結一下前段時間通過Android源碼分析了一
在之前app寫完測試的時候,跑完整個老化階段包括數據收發都沒問題,鍵入