码迷,mamicode.com
首页 > 移动开发 > 详细

Android 悬浮框 覆盖与被覆盖

时间:2014-12-10 10:50:19      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   ar   使用   on   2014   问题   log   

简介

悬浮窗是Android平台的特色之一,熟练使用悬浮窗很重要,当大家都使用悬浮窗的时候,于是乎就有了现在的覆盖与被覆盖的问题。

在笔者接触所有app中,悬浮窗的覆盖能力最强的属某点,几乎把其他所有的app都覆盖了。


详情

涉及悬浮窗口的类:WindowManager、WindowManagerImpl,CompatModeWrapper(WindowManagerImpl的内部类),LocalWindowManager(Window的内部类)。

如图:

bubuko.com,布布扣


掌握了它的原理,我们来写一个项目测试,测试结果如下:

在View相同等级情况下(flag标识),后弹出的悬浮窗覆盖之前的悬浮窗。

bubuko.com,布布扣

bubuko.com,布布扣


有没有一种方法令所有的悬浮窗都被覆盖?

笔者有几种方案:

1、反射机制清空所有的悬浮窗。(已实现)

2、找出最大flag标识。(已实现)

3、判断自己的悬浮窗是否被覆盖,被覆盖则重新弹出。(已实现)


悬浮窗能不能监听到返回键?

笔者目前没找到一种有效的方案,本想通过底层拦截事件然后返回给悬浮窗,但后来想想,简单的程序简单做,不要把程序搞得那么复杂。


好了不多说了,方案已经列出来了,感兴趣的朋友赶紧去实现吧。


Android 悬浮框 覆盖与被覆盖

标签:android   blog   http   ar   使用   on   2014   问题   log   

原文地址:http://blog.csdn.net/banketree/article/details/41842761

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!