gpt4 book ai didi

Android 覆盖来捕获所有的触摸,并传递它们?

转载 作者:IT老高 更新时间:2023-10-28 22:22:31 27 4
gpt4 key购买 nike

我基本上是在尝试从系统覆盖之类的东西中获取所有触摸事件数据,根据这些触摸数据移动我的 Sprite ,然后允许操作系统/主屏幕/浏览器按应有的方式处理数据(反之亦然反之亦然)。我发现了类似的问题,但没有什么能引导我到我未曾去过的任何地方:

Getting the View that is receiving all the touch events

(已实现,结果如下) Creating a system overlay window (always on top)

我能做什么:

我可以抓取所有的触摸事件并通过移动我的 Sprite 来对它们进行操作,并且不允许操作系统/主屏幕/浏览器看到它们中的任何一个,或者我可以允许触摸事件通过并且只得到一个“TOUCH_OUTSIDE”让我的应用程序采取行动。

我未实现的目标:

我这辈子都想不出办法让两者都处理数据。我能想到但无法实现的唯一方法是:截取我的应用程序中的数据并将其传递到操作系统/主屏幕/浏览器以使用允许操作系统/主屏幕/浏览器首先获取数据,然后以某种方式获取带有信息的回调允许操作系统/主屏幕/浏览器获取数据,对数据进行操作,并轮询它们的滚动/位置值,以便在我的应用程序中对其进行操作。

我担心这是不可能的,我想我在一些我现在找不到的文档中读到了:“要么全有,要么全无,要么你的 View 获取所有事件,要么一个都不获取”

(为避免混淆,我并不是说我有两个 View 。我的意思是我有一个 View 通过覆盖操作系统/主屏幕/浏览器的 Activity/服务控制。如果你愿意的话,就像一 block 玻璃。)

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

[更新]在下面发布了我自己关于此事的文档,以免造成混淆。

最佳答案

发现这个文档几乎指出不可能同时做到这两个: Android : Multi touch and TYPE_SYSTEM_OVERLAY

他们讨论了解决方法,但我认为它们中的任何一个都不会真正适用于我正在尝试做的事情。两者都将事件提供给底层应用程序,并且能够窥探它们并为自己采取行动。

To create an overlay view, when setting up the LayoutParams you need to set the type to TYPE_SYSTEM_OVERLAY and use the flag FLAG_WATCH_OUTSIDE_TOUCH. This presents a problem because as the Android documentation states: "you will not receive the full down/move/up gesture, only the location of the first down as an ACTION_OUTSIDE." In order to receive the full array of touch events you need to use the TYPE_SYSTEM_ALERT type, but this causes the overlay to take over the screen and stop interaction with other elements.

任何人都想不同意我很想听到好消息:-D

关于Android 覆盖来捕获所有的触摸,并传递它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085022/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com