Android Window Flag介绍

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;

    原文作者:周晓风
    原文地址: https://www.jianshu.com/p/e4845916abda
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞