4

有谁知道我如何创建一个浮动窗口?(下图显示了我的意思) -源代码

我在各种网站上读到,为了做到这一点,应用程序必须作为服务运行,而该服务又应该使用“TYPE_SYSTEM_ALERT”作为活动运行。

如果上述是或不是真的......我仍然不知道如何实现代码。有人可以写一些代码来展示如何将一个简单的应用程序(单击按钮并做某事)制作成一个浮动窗口,谢谢 :)

这也可能有帮助 - facebook 聊天头

浮动窗口应用程序

4

4 回答 4

3

最简单的方法是使用优秀的开源 Standout 库:https ://github.com/pingpongboss/StandOut

于 2014-03-29T13:10:36.140 回答
3

您可以使用 WindowManager 来膨胀视图。像这样的东西:

LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);


overlay = (RelativeLayout) inflater.inflate(R.layout.overlay, null);

final LayoutParams params = new LayoutParams(
                        LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT,
                        LayoutParams.TYPE_SYSTEM_ALERT,
                        LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCH_MODAL,
                        PixelFormat.TRANSLUCENT);


WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
if (overlay.isShown()){
        wm.updateViewLayout(overlay, params);
}
else {

        // add overlay
        wm.addView(overlay, params);
}

有了它,您可以在任何应用程序上放大任何视图。

希望对你有帮助!!

于 2014-10-27T09:42:21.823 回答
2

您可能还想查看 Tooleap SDK:http ://www.tooleap.com

于 2014-10-27T09:22:06.427 回答
0

这些问答(链接如下)有助于实现我想要的:

可以在服务中扩展 XML 布局吗?(安卓)

创建系统覆盖窗口(始终在顶部)

于 2015-08-22T07:40:22.027 回答