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
);}
弹出窗口后的内容变暗。
public static final int FLAG_DIM_BEHIND = 0x00000002;
弹出窗口后的内容变模糊。
public static final int FLAG_BLUR_BEHIND = 0x00000004;
弹出窗口不能获得按键输入事件,事件将会往其他窗口传递。
public static final int FLAG_NOT_FOCUSABLE = 0x00000008;
弹出窗口不接受触摸屏事件,事件将会往其他窗口传递。
public static final int FLAG_NOT_TOUCHABLE = 0x00000010;
当设备休眠时,点击触摸屏,弹出窗口将收到这个触摸事件。
public static final int FLAG_NOT_TOUCH_MODAL = 0x00000020;
触摸事件被系统所消耗,用户不会看到他们点击屏幕有什么反应。
public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;
弹出窗口可见时,保持设备常亮不变。
public static final int FLAG_KEEP_SCREEN_ON = 0x00000080;
弹出窗口占满整个屏幕,忽略周围的装饰边框(例如状态栏)。
public static final int FLAG_LAYOUT_IN_SCREEN =0x00000100;
允许弹出窗口扩展到屏幕之外。
public static final int FLAG_LAYOUT_NO_LIMITS =0x00000200;
弹出窗口显示时,隐藏所有的屏幕装饰(例如状态条)。
public static final int FLAG_FULLSCREEN = 0x00000400;
此选项将覆盖FLAG_FULLSCREEN选项,并强制屏幕装饰(如状态条)弹出。
public static final int FLAG_FORCE_NOT_FULLSCREEN =0x00000800;
弹出窗口半透明的显示处理方法,又称“点透”。通常用于图形处理较差的设备。
public static final int FLAG_DITHER = 0x00001000;
弹出窗口不允许屏幕截图。
public static final int FLAG_SECURE = 0x00002000;
弹出窗口特殊模式,布局参数用于指示显示比例。
public static final int FLAG_SCALED = 0x00004000;
当屏幕有贴着脸时,防止面颊对屏幕造成误操作。
public static final int FLAG_IGNORE_CHEEK_PRESSES = 0x00008000;
确保窗口内容不会被装饰条(状态栏)盖住。
public static final int FLAG_LAYOUT_INSET_DECOR = 0x00010000;
窗口不能与输入法交互,覆盖输入法窗口。(同时设置FLAG_NOT_FOCUSABLE,窗口将能够与输入法交互,输入法窗口覆盖)
public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;
当触屏事件发生在弹出窗口之外,可以通过设置此标志接收到一个MotionEvent.ACTION_OUTSIDE事件。
public static final int FLAG_WATCH_OUTSIDE_TOUCH = 0x00040000;
当屏幕锁定时,弹出窗口可以被看到。这使得应用程序窗口优先于锁屏界面。可配合FLAG_KEEP_SCREEN_ON
public static final int FLAG_SHOW_WHEN_LOCKED = 0x00080000;
系统墙纸显示为弹出窗口背景。窗口必须是半透明的。
public static final int FLAG_SHOW_WALLPAPER = 0x00100000;
窗口一旦显示出来,系统将点亮屏幕。
public static final int FLAG_TURN_SCREEN_ON = 0x00200000;
弹出窗口时解除锁屏。锁屏界面非加密才能解锁。如果是加密的,需要设置了FLAG_SHOW_WHEN_LOCKED
public static final int FLAG_DISMISS_KEYGUARD = 0x00400000;
锁屏界面淡出时,继续运行它的动画。
public static final int FLAG_KEEP_SURFACE_WHILE_ANIMATING =0x10000000;
以原始尺寸显示窗口。
public static final int FLAG_COMPATIBLE_WINDOW = 0x20000000;
设置此选项的窗口将无条件获得焦点。
public static final int FLAG_SYSTEM_ERROR = 0x40000000;