目录
1.基本介绍
2.代码示例
3.实现效果及便捷工具类
4.仿微信语音通话悬浮窗效果实现
4.1 需求分析及效果展示
4.2 实现
5.最后
1.基本介绍
Android 界面绘制都是通过 WindowManager 服务来实现的,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.代码示例
1)在 AndroidManifest 中声明权限
2)判断是否拥有在屏幕上层绘制权限
public static boolean canDrawOverlays(Context context, boolean isApplyAuthorization) {
//Android 6.0 以下无需申请权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//判断是否拥有悬浮窗权限,无则跳转悬浮窗权限授权页面
if (Settings.canDrawOverlays(context)) {
return true;
} else {