WindowManager
WindowManager是窗口管理器, 所有显示窗口都可以通过它来控制
-
WindowManager.addView(view, layoutParams)
添加一个View到窗口中 -
WindowManager.updateView(view, layoutParams)
更新窗口中的View属性 -
WindowManager.removeView(view)
删除窗口中的View
WindowManager.LayoutParams
获取布局参数
|
创建布局参数
|
WindowManager.LayoutParams.type
用于确定窗口在屏幕上的显示层次
-
FIRST_APPLICATION_WINDOW
普通应用的第一个窗口 -
TYPE_BASE_APPLICATION
作为所有应用基础的窗口, 其他应用窗口都在其上 -
TYPE_APPLICATION
普通应用窗口. token必须为Activity的token, 指明该窗口属于谁 -
TYPE_APPLICATION_STARTING
应用启动时显示的窗口. 用于系统在应用能够显示之前显示一些东西 -
LAST_APPLICATION_WINDOW
应用最后一种窗口类型 -
FIRST_SUB_WINDOW
子窗口 -
TYPE_APPLICATION_PANEL
在应用窗口之上的面板窗口, 出现在所依附的窗口之上 -
TYPE_APPLICATION_MEDIA
显示媒体(如视频)的窗口, 在他们依附的窗口之下显示 -
TYPE_APPLICATION_SUB_PANEL
应用窗口之上的子面板窗口, 显示在所依附的窗口和其他面板之上 -
TYPE_APPLICATION_ATTACHED_DIALOG
类似TYPE_APPLICATION_PANEL, 但会作为顶层窗口, 而不是容器的子窗口 -
TYPE_APPLICATION_MEDIA_OVERLAY
隐藏
在媒体窗口上显示覆盖层的窗口
显示在TYPE_APPLICATION_MEDIA和应用窗口之间 -
TYPE_APPLICATION_ABOVE_SUB_PANEL
一个子面板窗口, 在应用窗口和子面板窗口之上 -
LAST_SUB_WINDOW
最后一个子窗口 -
FIRST_SYSTEM_WINDOW
第一个系统窗口 -
TYPE_STATUS_BAR
状态栏
只能有一个状态栏窗口. 放置在屏幕上方, 其他所有窗口都在其之下 -
TYPE_SEARCH_BAR
搜索条
只能有一个搜索条窗口, 放置在屏幕顶层 -
TYPE_PHONE
电话窗口
这是非应用窗口, 用于来电的界面
该窗口通常置于所有应用之上, 但在状态栏下 -
TYPE_SYSTEM_ALERT
系统窗口, 例如低电量警告弹窗, 在应用窗口之上 -
TYPE_KEYGUARD
锁屏窗口 -
TYPE_TOAST
透明通知. 不会拦截触摸事件, 可以向下透传 -
TYPE_SYSTEM_OVERLAY
系统覆盖窗口, 在所有东西之上. 该窗口必须禁止获取输入焦点, 否则会变成锁屏 -
TYPE_PRIORITY_PHONE
优先级电话, 即使锁屏也会显示
该窗口必须禁止获取输入焦点, 否则会变成锁屏 -
TYPE_SYSTEM_DIALOG
状态栏拉出的面板 -
TYPE_KEYGUARD_DIALOG
锁屏 -
TYPE_SYSTEM_ERROR
系统错误窗口, 在所有内容之上 -
TYPE_INPUT_METHOD
输入法窗口, 在普通UI之上
可以缩放 -
TYPE_INPUT_METHOD_DIALOG
输入法对话框窗口, 在当前输入法窗口之上 -
TYPE_WALLPAPER
壁纸窗口, 在任意窗口之下, 壁纸之上 -
TYPE_STATUS_BAR_PANEL
状态栏拉出的面板 -
TYPE_SECURE_SYSTEM_OVERLAY
安全的系统覆盖窗口, 在所有内容之上
必须禁止获取输入焦点, 否则会变成锁屏
同TYPE_SYSTEM_OVERLAY类似, 区别是只允许系统创建这种覆盖层, 应用无法创建 -
TYPE_DRAG
拖拽窗口
最多有一个, 在所有窗口之上 -
TYPE_STATUS_BAR_SUB_PANEL
状态栏拉出的面板, 在状态栏之下 -
TYPE_POINTER
鼠标指针 -
TYPE_NAVIGATION_BAR
导航条 -
TYPE_VOLUME_OVERLAY
调整音量时显示的音量窗口 -
TYPE_BOOT_PROGRESS