在下面的代码中,什么是0x40028(262184)标志?我在documentation的任何地方都找不到它,我什至在各种API级别的文档中都找到了它,但找不到。
WindowManager.LayoutParams params = new
android.view.WindowManager.LayoutParams(0, 0, 0, 0, 2003, 0x40028, -3);
答案 0 :(得分:1)
此值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
也许文档会更好一些。