安卓:如何在任何东西(任何活动)上免费绘制

2022-09-01 18:57:26

如何在所有其他活动之上绘制视图,无论它们显示什么,并且不使用透明活动或使用其触摸事件。

它就像在所有其他应用程序的顶部显示一个自定义图标,当您触摸它时会做出反应,但您仍然可以触摸屏幕上的其他视图。

示例:Facebook聊天头像,无论您在做什么,无论您是在主屏幕还是应用程序菜单或任何应用程序上,都可以在屏幕上显示可拖动和可单击的图标。您仍然可以分别单击聊天头图标和后台应用程序元素

如何做这样的事情?


答案 1

看看这篇很酷的文章,我认为这正是你想要的:

http://www.piwai.info/chatheads-basics

简而言之:您希望将此权限添加到清单中:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

对于 api >= 23,您需要请求运行时权限Settings.ACTION_MANAGE_OVERLAY_PERMISSION

然后在服务中,获取窗口管理器

windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

并使用该方法添加视图addView


答案 2

看看 .您可以执行类似操作(如果要获取根视图)和要添加视图,请使用该方法。WindowManager(WindowManager)mContext.getSystemService("window");addView(view, params)


推荐