本文参照自:http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html
和
http://blog.sina.com.cn/s/blog_4b3c1f950100qd9s.html
WindowManager.LayoutParams是窗口管理器接口的嵌套类,它继承于ViewGroup.LayoutParams;它用于向窗口管理器,描述窗口的管理策略。
java.lang.Object的 | ||
? | android.view.ViewGroup.LayoutParams | |
? | android.view.WindowManager.LayoutParams |
主要成员常量
窗口标志系列
WindowManager.LayoutParams对象,然后直接对它标志变量操作,也可以窗口的addFlags(旗)方法,setFlags(INT标志,诠释面罩)方法,clearFlags(标志)方法进行操作。
比如设置全屏
:
窗口窗口= getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags = winParams.flags | WindowManager.LayoutParams.FLAG_FULLSCREEN
;
或
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
或
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
取消全屏
窗口窗口= getWindow();
winParams.flags = winParams.flags〜WindowManager.LayoutParams.FLAG_FULLSCREEN;
或
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
或
window.setFlags(0,WindowManager.LayoutParams.FLAG_FULLSCREEN);
所有窗口标志如下:
诠释 | FLAGS_CHANGED | 用于表示的标志发生了变化,关于此的详细内容请看后文。 |
诠释 | FLAG_ALLOW_LOCK_WHILE_SCREEN_ON | 窗口标志:只要这个窗口是用户可见,让锁屏激活屏幕上时, 当该窗口对用户可见的时候,允许锁屏。 |
诠释 | FLAG_ALT_FOCUSABLE_IM | 窗口标志:反转状态 FLAG_NOT_FOCUSABLE的 这个窗口如何与当前方法。 |
诠释 | FLAG_BLUR_BEHIND | 这个窗口后面的窗口标志:模糊的一切 让该窗口后所有东西都模糊(模糊) |
诠释 | FLAG_DIM_BEHIND | 窗口标志:这个窗口后面的一切都将变暗。 让该窗口后所有的东西都成暗淡(点心) |
诠释 | FLAG_DISMISS_KEYGUARD | 窗口标志:设置窗口时会导致键盘锁被解雇, 只有当它是不是一个安全锁键盘锁。 |
诠释 | FLAG_DITHER | 窗口标志:开启抖动合成时,这个窗口到 屏幕上。开启抖动(抖动) |
诠释 | FLAG_FORCE_NOT_FULLSCREEN | 恢复窗口 窗口标志:覆盖{@链接#FLAG_FULLSCREEN 和强制显示屏幕装饰(如状态栏)。非全屏显示 |
诠释 | FLAG_FULLSCREEN | 窗口标志:隐藏所有屏幕装饰品(如 让窗口进行全屏显示 |
诠释 | FLAG_HARDWARE_ACCELERATED | 表示此窗口是否应该是硬件加速。 对该窗口进行硬件加速。 该标志必须在设置你的活动或对话框的内 容视图之前进行设置, 而且如果你在mainfest文件中 用android:hardwareAccelerated开启了 该属性的话,那么你在程序中就不能再改变它。 mainfest文件中android:hardwareAccelerated属性默 认是开启的("true")。 |
诠释 | FLAG_IGNORE_CHEEK_PRESSES | 窗口标记符:用于将经常被用于当用户对 他们的脸的屏幕的窗口,将积极地过滤的 事件流,在这种情况下,可能不是所期望的 一个特定的窗口,以防止意外按压,当这样 的事件检测到流,应用程序将收到一个CANCEL 运动事件表明这样的应用程序可以处理相应的事 件上不采取行动,直到手指被释放。 |
诠释 | FLAG_KEEP_SCREEN_ON | 窗口标志:只要这个窗口是用户可见, 保持设备的屏幕打开和明亮的,当该窗口 对用户可见时,让设备屏幕处于高亮(亮) 状态。 |
诠释 | FLAG_LAYOUT_INSET_DECOR | 窗口标志:一个特殊的选项仅用于 结合 FLAG_LAYOUT_IN_SCREEN的 。 |
诠释 | FLAG_LAYOUT_IN_SCREEN | 窗口标志:在整个屏幕上的窗口, 无视周围的边框装饰(又名让窗口占 满整个手机屏幕,不留任何边界(境) |
诠释 | FLAG_LAYOUT_NO_LIMITS | 窗口标志:允许以外的窗口,延长 |
诠释 | FLAG_NOT_FOCUSABLE | 窗口标志:这个窗口将不会获得输入 焦点的关键,因此用户不能发送键或其 他按键事件 |
诠释 | FLAG_NOT_TOUCHABLE | 窗口标志:这个窗口永远不能接收 触摸事件让该窗口不接受触摸屏事件。 |
诠释 | FLAG_NOT_TOUCH_MODAL | 窗口标志:即使当这个窗口可调焦 ({@#FLAG_NOT_FOCUSABLE的没有设置), 允许任何指针事件被发送到窗外的窗户后面 |
诠释 | FLAG_SCALED | 窗口标记:一个特殊的模式的布局参数 合成在屏幕上时,它被用来执行缩放表面。 |
诠释 | FLAG_SECURE | 窗口标志:不允许此窗口显示屏幕截 图,而当该窗口在进行显示的时候,不允 许截屏。 |
诠释 | FLAG_SHOW_WALLPAPER | 窗口标志:要求显示系统壁纸背后的窗 口,在该窗口后显示系统的墙纸(壁纸) |
诠释 | FLAG_SHOW_WHEN_LOCKED | 窗口标志:特殊标志,让窗口显示 屏幕被锁定时,当锁屏的时候,显示 该窗口。 |
诠释 | FLAG_SPLIT_TOUCH | 窗口标志:当设置窗口将接受其边界之外的触 摸事件被发送到其他窗口,也支持触摸分割。 当这个标志没有设置,第一个指针,停机确定 窗口,所有后续倒是去,直到所有的指针上去。 当此标志设置,每个指针(不一定是第一个), 停机确定窗口,所有后续触及该指针将去,直 到该指针上升从而使涉及多个指针被分割在多 个 触摸。 |
诠释 | FLAG_TOUCHABLE_WHEN_WAKING | 窗口标志:设置时,如果设备是睡着了, 当按下触摸屏,你会收到这个第一触摸 |
诠释 | FLAG_TURN_SCREEN_ON | 窗口标志:设置为一个窗口时,被添加 或可见,一旦窗口已显示,然后系统会 捅电源管理器的用户活动(如果用户唤 醒设备)打开屏幕 |
诠释 | FLAG_WATCH_OUTSIDE_TOUCH | 窗口标志:如果您已设置 FLAG_NOT_TOUCH_MODAL ,你可以设置这个标志接收一个特殊MotionEvent用 行动 MotionEvent.ACTION_OUTSIDE 的触动你的外面发生 |
softInputMode系列
该系列主要用于表示softInputMode,我们可以通过WindowManager.LayoutParams的softInputMode变量直接进行设置。
softInputMode只能是一个显示软键盘时的window调整方式bite与一个控制软键盘显示状态的bite的组合。
显示软键盘时的窗口调整方式可以是
SOFT_INPUT_ADJUST_NOTHING
,
SOFT_INPUT_ADJUST_PAN
SOFT_INPUT_ADJUST_RESIZE
SOFT_INPUT_ADJUST_UNSPECIFIED
之一。
用于描述软键盘显示的规则可以是
SOFT_INPUT_STATE_ALWAYS_HIDDEN
,
SOFT_INPUT_STATE_ALWAYS_VISIBLE
,
SOFT_INPUT_STATE_HIDDEN的
,
SOFT_INPUT_STATE_VISIBLE
SOFT_INPUT_STATE_UNSPECIFIED
之一
关于softInputMode的更多知识请参考 “
软件盘的开关 “
所有的softInputMode系列常量如下:
诠释 | SOFT_INPUT_ADJUST_NOTHING | 调整选项 设置有一个窗口,调整图中 所示的输入法。 softInputMode :当显示软键盘时,不调整窗口的布局 |
诠释 | SOFT_INPUT_ADJUST_PAN | 调整选项 softInputMode的 :设置有一个窗口油锅时,显示一个输入法,所以 它并不需要调整大小处理,但只是 平移,由框架,以确保当前的输入焦点 |
诠释 | SOFT_INPUT_ADJUST_RESIZE | 调整选项 设置为允许时调整大 小的窗口,显示输入法,其内容不 包括由输入 softInputMode : |
诠释 | SOFT_INPUT_ADJUST_UNSPECIFIED | 调整选项 softInputMode :无指定不指定显示软件盘时,窗口的调 整方式。 |
诠释 | SOFT_INPUT_IS_FORWARD_NAVIGATION | 的softInputMode 位 :设置当用户导航到窗口表示用户导航(导航) 到了你的窗口 |
诠释 | SOFT_INPUT_MASK_ADJUST | 这个窗口应该进行调整,以适 应软输入位确定 面膜 softInputMode |
诠释 | SOFT_INPUT_MASK_STATE | 面膜为 softInputMode 位决定所需的可见性状态的软输入区域窗口。用于描述 软键盘显示规则的咬的面具。 |
诠释 | SOFT_INPUT_MODE_CHANGED | 用于表示softInputMode发生了 变化。关于此的详细内容请看后文。 |
诠释 | SOFT_INPUT_STATE_ALWAYS_HIDDEN | Visibility状态为 softInputMode : 请始终隐藏任何软输入区域,当 这个窗口接收焦点。总是隐藏软键盘。 |
诠释 | SOFT_INPUT_STATE_ALWAYS_VISIBLE | Visibility状态为 softInputMode :请务必使软输入区域可见这个窗 口获得输入焦点时,总是显示软键盘。 |
诠释 | SOFT_INPUT_STATE_HIDDEN | Visibility状态为 softInputMode : 请隐藏任何软输入区域,在正常情 况下(当用户浏览到你的窗口)。用户导航 (导航)到你的窗口的时候,隐藏软键盘 |
诠释 | SOFT_INPUT_STATE_UNCHANGED | Visibility状态为 softInputMode :请不要改变软输入区域的状态。 |
诠释 | SOFT_INPUT_STATE_UNSPECIFIED | Visibility状态为 softInputMode :无状态已指定 没有软键盘显示的约定规则 |
诠释 | SOFT_INPUT_STATE_VISIBLE | Visibility状态为 softInputMode :请出示软输入区域时,正常情况下 (当用户浏览到你的窗口)。用户 导航(导航)到你的窗口的时候,显 示的软键盘 |
窗型系列
该系列主要用于表示
window
的类型。我们可以通过
WindowManager.LayoutParams
的
type
变量直接进行设置.
诠释 | TYPE_APPLICATION | 窗口类型:一个正常的应用程序窗口。 普通的应用程序窗口,令牌必须设置为 活动的标记,以指出该窗口属谁 |
诠释 | TYPE_APPLICATION_ATTACHED_DIALOG | 窗口的类型:像 TYPE_APPLICATION_PANEL ,但发生的窗口布局的顶层窗口, 而不是 其 作为一个孩子 |
诠释 | TYPE_APPLICATION_MEDIA | 窗口类型:窗口显示介质(例如媒体窗口, 例如视频显示于宿主窗口下层。 |
诠释 | TYPE_APPLICATION_PANEL | 窗口类型:一个应用程序窗口的顶部面板 上。面板窗口,显示于宿主窗口上层 |
诠释 | TYPE_APPLICATION_STARTING | 窗口类型:特殊的应用程序窗口时 显示的应用程序 |
诠释 | TYPE_APPLICATION_SUB_PANEL | 窗口类型:应用程序上的子面板 |
诠释 | TYPE_BASE_APPLICATION | 窗口类型:作为整体应用的“基地”窗口, 所有其他应用程序窗口的应用程序窗口 会出现在它的上面。所有程序窗口的“基 地”窗口,其他应用程序的窗口都显示在 它上面。 |
诠释 | TYPE_CHANGED | 表示窗口的类型发生了变化,关于 此的详细内容请看后文。 |
诠释 | TYPE_INPUT_METHOD | 窗口类型:内部输入法窗口,出现高于正常 |
诠释 | TYPE_INPUT_METHOD_DIALOG | 窗口类型:内部输入法对话框窗口,显 示当前输入法窗口之上内部输入法对话框, 显示于当前输入法窗口之上。 |
诠释 | TYPE_KEYGUARD | 窗口类型:键盘锁窗锁屏窗口 |
诠释 | TYPE_KEYGUARD_DIALOG | 窗口类型:对话框,在键盘锁定显 示锁屏时显示的对话框 |
诠释 | TYPE_PHONE | 窗口类型: |
诠释 | TYPE_PRIORITY_PHONE | 窗口类型:优先级的手机用户 界面,需要显示,即使在键盘 锁定。电话优先,当锁屏时显示。 此窗口不能获得输入焦点,否则影 响锁屏。 |
诠释 | TYPE_SEARCH_BAR | 窗口类型:搜索栏搜索栏。只 能有一个搜索栏,它位于屏幕上方。 |
诠释 | TYPE_STATUS_BAR | 窗口类型:状态 |
诠释 | TYPE_STATUS_BAR_PANEL | 窗口类型:面板滑出在状态 栏状态栏的滑动面板 |
诠释 | TYPE_SYSTEM_ALERT | 窗口类型:系统窗口,如低功耗警 报系统提示窗口,比如电池低的警告。 它总是出现在应用程序窗口之上。 |
诠释 | TYPE_SYSTEM_DIALOG | 窗口类型:面板,从状态栏滑 出系统对话框(例如音量调节框) |
诠释 | TYPE_SYSTEM_ERROR | 窗口类型:内部系统错误窗口, 一切,他们可以出现在顶部。系统内 部错误提示,显示于所有内容之上 |
诠释 | TYPE_SYSTEM_OVERLAY | 窗口类型:系统叠加窗口,需 要显示一切之上 |
诠释 | TYPE_TOAST | 窗口类型:瞬时通知。敬酒类型的窗口 |
诠释 | TYPE_WALLPAPER | 窗口类型:壁纸窗口, 放在后面的任何窗口,想 坐的壁纸上用于墙纸的窗口 |
窗口的类型被分为了3大类:
应用程序窗口
(介乎从
FIRST_APPLICATION_WINDOW
LAST_APPLICATION_WINDOW的
)是正常的顶层应用程序窗口。对于这些类型的窗口必须设置为活动的一部分(这通常会为你做的如果令牌是空的)令牌,令牌。
子窗口
(范围从
FIRST_SUB_WINDOW
LAST_SUB_WINDOW
)都与另一个顶层窗口。对于这些类型的窗户,令牌必须是它是连接到窗口的令牌。
系统窗口
(包括从
FIRST_SYSTEM_WINDOW
LAST_SYSTEM_WINDOW
)是由系统为特定目的而使用的特殊类型的窗口。通常他们不应该被使用的应用程序中,一个特殊的权限才能使用它们。
系统专门定义了
FIRST_APPLICATION_WINDOW
,
LAST_APPLICATION_WINDOW
,
FIRST_SUB_WINDOW
,
LAST_SUB_WINDOW,
FIRST_SYSTEM_WINDOW ,LAST_SYSTEM_WINDOW 以表示窗口的3大类型的类型的取值的范围。
诠释 | FIRST_APPLICATION_WINDOW | 开始代表正常的应用程序窗口的窗口类型。 恒定值:1(0X00000001) |
诠释 | FIRST_SUB_WINDOW | 启动类型的子窗口。 恒定值:1000(0x000003e8) |
诠释 | FIRST_SYSTEM_WINDOW | 启动系统特定的窗口类型。 恒定值:2000(0x000007d0) |
诠释 | LAST_APPLICATION_WINDOW | 结束类型的应用程序窗口。 恒定值:99(0x00000063) |
诠释 | LAST_SUB_WINDOW | 结束类型的子窗口。 恒定值:1999(0x000007cf) |
诠释 | LAST_SYSTEM_WINDOW | 结束类型的系统窗口。 恒定值:2999(0x00000bb7) |
//设置窗体全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置窗体始终点亮
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//设置窗体背景模糊
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);