什么是标志0x40028?

时间:2018-10-28 12:49:45

标签: java android

在下面的代码中,什么是0x40028(262184)标志?我在documentation的任何地方都找不到它,我什至在各种API级别的文档中都找到了它,但找不到。

WindowManager.LayoutParams params = new 
    android.view.WindowManager.LayoutParams(0, 0, 0, 0, 2003, 0x40028, -3);

2 个答案:

答案 0 :(得分:1)

阅读documentation

此值0x40028与以下常量的一些值组合:

FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
FLAG_DIM_BEHIND
FLAG_NOT_FOCUSABLE
FLAG_NOT_TOUCHABLE
FLAG_NOT_TOUCH_MODAL
FLAG_TOUCHABLE_WHEN_WAKING
FLAG_KEEP_SCREEN_ON
FLAG_LAYOUT_IN_SCREEN
FLAG_LAYOUT_NO_LIMITS
FLAG_FULLSCREEN
FLAG_FORCE_NOT_FULLSCREEN
FLAG_SECURE
FLAG_SCALED
FLAG_IGNORE_CHEEK_PRESSES
FLAG_LAYOUT_INSET_DECOR
FLAG_ALT_FOCUSABLE_IM
FLAG_WATCH_OUTSIDE_TOUCH
FLAG_SHOW_WHEN_LOCKED
FLAG_SHOW_WALLPAPER
FLAG_TURN_SCREEN_ON
FLAG_DISMISS_KEYGUARD
FLAG_SPLIT_TOUCH
FLAG_HARDWARE_ACCELERATED
FLAG_LOCAL_FOCUS_MODE
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS

以上每个标志都描述了窗口行为,通过使用|(按位或运算符)组合两个或多个这些值,您可以生成类似0x40028的值。

答案 1 :(得分:1)

它是WindowManager's FLAG_*常量的组合。从source中可以看到,WindowManager.flags仅与这些常量进行比较。

0x40028 == FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL | FLAG_WATCH_OUTSIDE_TOUCH

也许文档会更好一些。