我有一个 Android Wear 应用程序,其中我使用透明的覆盖视图来接收触摸事件。我需要能够接收屏幕上任何位置发生的所有触摸事件,并且还能够看到它们的坐标。
我发现的所有研究都表明我无法接收所有触摸事件并将其传递。然而, and 都在做这样的事情。
这是我看过的地方:
- Android 覆盖层可以获取所有触摸并传递它们? https://stackoverflow.com/questions/9085022/android-overlay-to-grab-all-touch-and-pass-them-on
- https://stackoverflow.com/questions/19356834/overlay-view-which-intercepts-some-events https://stackoverflow.com/questions/19356834/overlay-view-which-intercepts-some-events
- Android - 拦截并传递所有触摸事件 https://stackoverflow.com/questions/6841971/android-intercept-and-pass-on-all-touch-events
- Android:多点触摸和TYPE_SYSTEM_OVERLAY https://stackoverflow.com/questions/8073803/android-multi-touch-and-type-system-overlay
- 创建系统覆盖窗口(始终在顶部) https://stackoverflow.com/questions/4481226/creating-a-system-overlay-window-always-on-top?lq=1
- 获取正在接收所有触摸事件的View https://stackoverflow.com/questions/6742177/getting-the-view-that-is-receiving-all-the-touch-events?lq=1
- 接收所有触摸事件的 Android Jelly Bean 服务 https://stackoverflow.com/questions/15737861/android-jelly-bean-service-that-receives-all-touch-events?lq=1
- ICS 中的 TYPE_SYSTEM_OVERLAY https://stackoverflow.com/questions/9656185/type-system-overlay-in-ics
- 仅对某些触摸事件做出反应的覆盖应用程序 https://stackoverflow.com/questions/25917844/overlay-app-that-reacts-only-on-some-touch-events?lq=1
这一定可以通过某种方式做到。也许覆盖视图不是解决这个问题的正确方法?有什么指点吗?
我在使用您提供的相同链接时遇到了很多麻烦。但后来我发现了这个:http://www.piwai.info/chatheads-basics/ http://www.piwai.info/chatheads-basics/
它与其他解决方案基本相同,除了参数WindowManager
LayoutParams
are TYPE_PHONE
and FLAG_NOT_FOCUSABLE
.
这个解决方案不仅对我有用(我在 LG Urbane 上进行测试),onTouchEvent
回调具有所有操作(向下、移动和向上),而其他解决方案表示您无法获得这些操作。
由于所有触摸事件都通过视图传递,理论上我们可以使用手势检测器来获取双击和滑动等事件的回调。不过我还没有尝试过这个。
无论如何,上面的链接应该可以帮助您解决所面临的最初问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)