Android 悬浮窗的实现

1. 首先在manifest中添加如下权限:

注意:在有些手机上,手机自带的权限管理软件默认会禁止悬浮窗口permission,需要在设置中打开本应用的”显示悬浮窗”开关,并且重启应用,否则悬浮窗不能显示在手机桌面上。(例如小米4 手机,需要在系统安全中心App -> Permission -> Your App -> Display pop-up window)

2. 通过Context.getSystemService(Context.WINDOW_SERVICE)可以获得 WindowManager对象。每一个WindowManager对象都和一个特定的 Display绑定。

    要想获取一个不同的display的WindowManager,可以用 createDisplayContext(Display)来获取那个display的 Context,之后再使用:Context.getSystemService(Context.WINDOW_SERVICE)来获取WindowManager。

    另外API 17推出了Presentation,它将自动获取display的Context和WindowManager,可以方便地在另一个display上显示窗口。

3. 调用WindowManager的addView方法和removeView方法来显示和隐藏窗口。

4. 完整代码示例:

MainActivity.java

WindowUtils.java

PopupwindowView.java

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年3月23日
下一篇 2015年3月24日

相关推荐