Window win = getWindow();
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);//覆蓋在屏幕鎖之上。
PowerManager?pm?=?(PowerManager)?getSystemService(Context.POWER_SERVICE);
if?(!pm.isScreenOn())?{//屏幕時候保持高亮
win.addFlags(
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|?WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
|?WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
|?WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
);}
彈出窗口后的內(nèi)容變暗。
public static final int FLAG_DIM_BEHIND?????? = 0x00000002;
彈出窗口后的內(nèi)容變模糊。
public static final int FLAG_BLUR_BEHIND?????? = 0x00000004;
彈出窗口不能獲得按鍵輸入事件,事件將會往其他窗口傳遞。
public static final int FLAG_NOT_FOCUSABLE???? = 0x00000008;
彈出窗口不接受觸摸屏事件,事件將會往其他窗口傳遞。
public static final int FLAG_NOT_TOUCHABLE???? = 0x00000010;
當(dāng)設(shè)備休眠時,點擊觸摸屏,彈出窗口將收到這個觸摸事件。
public static final int FLAG_NOT_TOUCH_MODAL?? = 0x00000020;
觸摸事件被系統(tǒng)所消耗,用戶不會看到他們點擊屏幕有什么反應(yīng)。
public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;
彈出窗口可見時,保持設(shè)備常亮不變。
public static final int FLAG_KEEP_SCREEN_ON??? = 0x00000080;
彈出窗口占滿整個屏幕,忽略周圍的裝飾邊框(例如狀態(tài)欄)。
public static final int FLAG_LAYOUT_IN_SCREEN?? =0x00000100;
允許彈出窗口擴展到屏幕之外。
public static final int FLAG_LAYOUT_NO_LIMITS?? =0x00000200;
彈出窗口顯示時,隱藏所有的屏幕裝飾(例如狀態(tài)條)。
public static final int FLAG_FULLSCREEN???? = 0x00000400;
此選項將覆蓋FLAG_FULLSCREEN選項,并強制屏幕裝飾(如狀態(tài)條)彈出。
public static final int FLAG_FORCE_NOT_FULLSCREEN?? =0x00000800;
彈出窗口半透明的顯示處理方法,又稱“點透”。通常用于圖形處理較差的設(shè)備。
public static final int FLAG_DITHER?????????? = 0x00001000;
彈出窗口不允許屏幕截圖。
public static final int FLAG_SECURE?????????? = 0x00002000;
彈出窗口特殊模式,布局參數(shù)用于指示顯示比例。
public static final int FLAG_SCALED?????????? = 0x00004000;
當(dāng)屏幕有貼著臉時,防止面頰對屏幕造成誤操作。
public static final int FLAG_IGNORE_CHEEK_PRESSES?? = 0x00008000;
確保窗口內(nèi)容不會被裝飾條(狀態(tài)欄)蓋住。
public static final int FLAG_LAYOUT_INSET_DECOR = 0x00010000;
窗口不能與輸入法交互,覆蓋輸入法窗口。(同時設(shè)置FLAG_NOT_FOCUSABLE,窗口將能夠與輸入法交互,輸入法窗口覆蓋)
public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;
當(dāng)觸屏事件發(fā)生在彈出窗口之外,可以通過設(shè)置此標志接收到一個MotionEvent.ACTION_OUTSIDE事件。
public static final int FLAG_WATCH_OUTSIDE_TOUCH = 0x00040000;
當(dāng)屏幕鎖定時,彈出窗口可以被看到。這使得應(yīng)用程序窗口優(yōu)先于鎖屏界面。可配合FLAG_KEEP_SCREEN_ON
public static final int FLAG_SHOW_WHEN_LOCKED = 0x00080000;
系統(tǒng)墻紙顯示為彈出窗口背景。窗口必須是半透明的。
public static final int FLAG_SHOW_WALLPAPER = 0x00100000;
窗口一旦顯示出來,系統(tǒng)將點亮屏幕。
public static final int FLAG_TURN_SCREEN_ON = 0x00200000;
彈出窗口時解除鎖屏。鎖屏界面非加密才能解鎖。如果是加密的,需要設(shè)置了FLAG_SHOW_WHEN_LOCKED
public static final int FLAG_DISMISS_KEYGUARD = 0x00400000;
鎖屏界面淡出時,繼續(xù)運行它的動畫。
public static final int FLAG_KEEP_SURFACE_WHILE_ANIMATING =0x10000000;
以原始尺寸顯示窗口。
public static final int FLAG_COMPATIBLE_WINDOW = 0x20000000;
設(shè)置此選項的窗口將無條件獲得焦點。
public static final int FLAG_SYSTEM_ERROR = 0x40000000;