Android 窗口类型

http://blog.csdn.net/forLittleBlue/article/details/59563755

WindowManager.LayoutParams.TYPE_PHONE这是非应用窗口,提供与电话的用户交互(特别是来电)。 这些窗口通常放置在所有应用程序之上,但在状态栏后面,会被状态栏显示给覆盖,其他应用全屏时也会覆盖掉。放到状态栏区域显示时,它的点击、触摸事件会被状态栏拦截。锁屏时不显示,在多用户系统中显示在所有用户的窗口。需要android.permission.SYSTEM_ALERT_WINDOW权限。
WindowManager.LayoutParams.TYPE_TOAST可以显示在几乎所有界面之上,包括状态栏、锁屏,除了锁屏,其他情况都可以响应点击触摸事件。在多用户系统中,只显示拥有用户的窗口。API level 19 以下因无法接收无法接收触摸(点击)和按键事件。不需要android.permission.SYSTEM_ALERT_WINDOW权限也可显示,但vivo x9 6.0系统测试需要。测试Huawei mate9、6P 7.0系统时该TYPE在状态栏区域不响应触摸事件,也不能覆盖锁屏,但不需要android.permission.SYSTEM_ALERT_WINDOW权限。OPPO R9 5.1系统测试状态栏显示会被一些应用draw状态栏时所覆盖,vivo 5.1则不会,这两个都不需要android.permission.SYSTEM_ALERT_WINDOW权限即可显示。
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT:系统窗口,如低功率警报。 这些窗口总是在应用程序窗口的顶部。和TYPE_PHONE类似,除了状态栏位置,可以显示在其他任何应用界面之上,其他应用全屏时也不会覆盖它。 在多用户系统中,只显示拥有用户的窗口。需要android.permission.SYSTEM_ALERT_WINDOW权限。
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY系统覆盖窗口,需要显示在其他所有窗口之上。 这些窗口不能采取输入焦点,否则会干扰键盘锁。 因此不能响应点击、触摸事件。在多用户系统中,只显示拥有用户的窗口。如果不需要响应点击、触摸事件,这个是最好的,能覆盖所有界面之上。
WindowManager.LayoutParams.TYPE_SYSTEM_ERRORinternal system error windows, appear on top of everything they can. In multiuser systems shows only on the owning user's window. 这个可以显示所有界面之上包括锁屏等,除了状态栏不能覆盖。
WindowManager.LayoutParams.TYPE_APPLICATION: 只能配合Activity在当前APP使用TYPE_APPLICATION_ATTACHED_DIALOG: 只能配合Activity在当前APP使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值