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进行处理,非常感谢!