1.基本介绍
Android 界面绘制都是通过 WindowManager 对象可通过获取 WINDOW_SERVICE 系统服务得到,并因为 WindowManager 继承于 ViewManager ,所以其拥有以下方法
addView(View view, ViewGroup.LayoutParams params)
主要通过该方法将指定 View 添加到屏幕上,实现悬浮窗效果
( WindowManager 对象调用 addView( ) 入参的 LayoutParams 必须为 WindowManager.LayoutParams )
removeView(View view)
移除指定已添加到屏幕上的 View
updateViewLayout(View view, ViewGroup.LayoutParams params)
通过调整 LayoutParams 更新屏幕上的指定 View
WindowManager 官方文档说明
2.代码示例
2.1 在 AndroidManifest 中声明权限
2.2 判断是否拥有在屏幕上层绘制权限
/**
* 判断是否拥有悬浮窗权限
*
* @param isApplyAuthorization 是否申请权限
*/
public static boolean canDrawOverlays(Context context, boolean isApplyAuthorization) {
//Android 6.0 以下无需申请权限
if (Build.VERSION.SDK_INT >= Build.VERSION_COD