我正在编写一个应用程序,该应用程序涉及使用手指或最终使用手写笔在屏幕上书写。我有那部分工作。在 ACTION_DOWN 上,开始绘制;在 ACTION_MOVE 上,添加线段;在 ACTION_UP 上,完成线。
问题是,在 ACTION_DOWN 之后,显然指针需要从它开始的位置移动 10 多个像素(基本上是围绕起点的 20x20 框)才能开始发送 ACTION_MOVE 事件。离开盒子后,移动事件都相当准确。(我通过测试找出了 10 像素的东西。)由于这是用于书写或绘图的,因此 10 像素是相当大的损失:取决于您尝试书写的大小,您可能会丢失第一个字母或两个。我还没有找到任何关于它的东西——只有一两个论坛上的几个帖子,比如http://android.modaco.com/topic/339694-touch-input-problem-not-detecting-very-small -movements/page_pid _1701028 #entry1701028. 它似乎出现在某些设备或系统上,而不是其他设备或系统上。但是,没有关于如何在拥有它时摆脱它的想法。
我正在使用带有 Android 3.1 的 Galaxy Tab 10.1。我已经尝试了几种不同的方法来尝试摆脱它:我尝试将事件的坐标设置为其他东西,看看我是否可以欺骗它认为光标在不同的位置;我尝试通过更改坐标重新调度事件(我的处理程序对新点做出反应,但仍然没有对 10 像素半径内的移动做出响应。)我已经在源代码中搜索了对效果的任何引用,并没有找到(尽管我认为它来自不同版本的 Android - 3.1 的代码尚未发布,是吗?)我已经搜索了查询指针当前状态的方法,所以我可以有一个计时器捕捉变化,直到指针越过阈值。不能 在没有相应的移动事件的情况下,找不到任何获取指针坐标的方法。没有任何效果。有人对此有所了解,或者有任何想法或解决方法吗?谢谢你。
-- 更新:拖放事件显示相同的阈值。