25

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

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

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

怎么做这样的事情?

4

2 回答 2

33

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

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并使用该方法添加您的视图

于 2013-05-15T11:05:18.007 回答
3

看看WindowManager(WindowManager)mContext.getSystemService("window");如果你想获得根视图,你可以做一些事情,addView(view, params)如果你想添加一个视图,你可以使用该方法。

于 2013-05-15T08:23:43.103 回答