谈谈沈阳APP开发中如何开启悬浮窗功能
2024/7/18 15:22:14 浏览:963
我们在浏览抖音或者快手一些视频类APP时,有时需要返回手机桌面处理一些事情,比如回复好友的微信信息,如果我们不想关闭当前视频,就要用到缩放当前视频到悬浮窗的功能,今天就来分享一下APP开发中开启悬浮窗的方法,首先我们需要申请悬浮窗的权限,在清单文件AndroidManifest.xml中添加SYSTEM_ALERT_WINDOW的权限,通过Settings的canDrawOverlays方法判断当前APP能否开启悬浮窗,如果不能需要跳转设置页面手动设置开启,为了让悬浮窗能一直显示在手机屏幕上,我们要用到Service服务,新建一个新的服务FloatingService,我们在服务中通过系统服务WINDOW_SERVICE获取到悬浮窗管理WindowManager,接着用WindowManager新建一个LayoutParams的布局代理,通过布局代理设置悬浮窗的类型type,待展示的控件,例如一个按钮BUTTON,给按钮设置文字、颜色和宽高和位置,最后通过WindowManager的addView方法将悬浮窗控件加入到屏幕上去,最后在活动页面中启动这个服务FloatingService。另外如果悬浮窗位置遮挡其他信息时,需要新增拖动功能,可以拖动到其他任意位置,实现的逻辑就是给按钮BUTTON添加触摸事件,在onTouch方法中处理移动的距离,同样调用WindowManager的updateViewLayout方法更新新的位置。