相关疑难解决方法(0)

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

我正在尝试创建一个始终操作顶部按钮/可点击图像,它始终位于所有窗口的顶部.

概念证明是

我已经成功并且现在有一个正在运行的服务.该服务始终在屏幕的左上角显示一些文本,而用户可以正常方式与其他应用程序自由交互.

我正在做的是子类ViewGroup并将其添加到带有标志的根窗口管理器TYPE_SYSTEM_OVERLAY.现在我想添加一个按钮/可点击图像来代替这个文本,它可以自己接收触摸事件.我尝试覆盖整个"onTouchEvent",ViewGroup但它没有收到任何事件.

如何仅在我的常见顶视图组的某些部分接收活动?请建议.

public class HUD extends Service {
    HUDView mView;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Toast.makeText(getBaseContext(),"onCreate", Toast.LENGTH_LONG).show();
        mView = new HUDView(this);
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                0,
//              WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
//                      | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.RIGHT | Gravity.TOP;
        params.setTitle("Load Average");
        WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
        wm.addView(mView, params);
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

android overlay

279
推荐指数
9
解决办法
23万
查看次数

Android叠加来抓取所有触摸,然后传递它们?

我基本上试图从系统覆盖中获取所有触摸事件数据,根据此触摸数据移动我的精灵,然后允许操作系统/主屏幕/浏览器按照应有的方式对数据进行操作(反之亦然).我发现了类似的问题,但没有任何东西可以引导我到任何我未曾去过的地方:

获取正在接收所有触摸事件的视图

(已实现,结果如下) 创建系统覆盖窗口(始终在顶部)

我可以做什么:

我可以通过移动我的精灵并且不允许操作系统/主屏幕/浏览器看到它们中的任何一个来抓住所有触摸事件并对其进行操作,或者我可以允许触摸事件通过并且仅获得"TOUCH_OUTSIDE"我的应用程序要采取行动.

我未实现的目标:

我不能为我的生活找到一种方法来同时处理数据.我无法实现的唯一方法是:拦截我的APP中的数据并将其传递到OS/homescreen/browser以使用允许OS/homescreen/browser首先获取数据,然后以某种方式获取信息回调允许操作系统/主屏幕/浏览器获取数据,对数据进行操作,并轮询他们的滚动/位置值,以便在我的APP中对其进行操作.

我担心这是不可能的,我想我在某些文档中读到了一些我现在无法找到的内容:"无论是全部还是全无,您的视图都可以获取所有事件,或者都不是"

(为了避免混淆,我并不是说我有两个视图.我的意思是我有一个视图通过覆盖操作系统/主屏幕/浏览器的活动/服务来控制.如果你愿意,就像一块玻璃.)

感谢您提供的任何有用信息,非常感谢!

[更新]在下面的问题上发表我自己的文档,以免混淆.

android overlay touch touch-event

23
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

overlay ×2

touch ×1

touch-event ×1