android 仿微信来电_Android 悬浮窗功能实现(微信语音通话悬浮窗效果实现)

本文介绍了如何在 Android 中实现类似微信来电的悬浮窗功能。通过 `WindowManager` 服务添加 View 到屏幕上,结合权限判断、布局参数设置和触摸事件处理,实现悬浮窗的添加、更新和移除。详细讲解了悬浮窗的拖动、自动粘边以及圆直角切换效果的实现,提供了完整的代码示例和 GitHub 源码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

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

b385d2d1bce71a69794e264941082697.png 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 {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值