Android 如何在一次轻触的特定瞬间获得所有原始接触点?

Android 如何在一次轻触的特定瞬间获得所有原始接触点?,android,touch,android-source,Android,Touch,Android Source,当触摸屏被轻触一次时,由于手指肥胖,手指会接触屏幕上的多个x、y位置。但是android一次只给我一个x,y位置(例如,如果我使用adb shell getevent,它一次只给我一个x-y坐标。当然,对于一个点击,它会给出多个x,y位置,因为点击持续一段时间,如果x-y稍微改变,它会给出该时间的每一部分的x-y位置。)在每一瞬间,我触摸的像素都超过了50-100个——大概android使用了某种算法将所有触摸信号减少到一个x-y位置。有没有办法在我同时触摸的每个像素上获得多个原始触摸信号?我有

当触摸屏被轻触一次时,由于手指肥胖,手指会接触屏幕上的多个x、y位置。但是android一次只给我一个x,y位置(例如,如果我使用adb shell getevent,它一次只给我一个x-y坐标。当然,对于一个点击,它会给出多个x,y位置,因为点击持续一段时间,如果x-y稍微改变,它会给出该时间的每一部分的x-y位置。)在每一瞬间,我触摸的像素都超过了50-100个——大概android使用了某种算法将所有触摸信号减少到一个x-y位置。有没有办法在我同时触摸的每个像素上获得多个原始触摸信号?我有一个根设备,如果需要,我愿意深入研究android源代码。

android通过几个MotionEvent API将整个触摸区域报告为椭圆形

触摸椭圆的长轴:

触摸椭圆的短轴:


触摸椭圆的方向:

您能确认这些方法是否有效吗?报告这些方法的问题自从我使用这些方法已经两年了,但它们在过去的许多设备上确实对我有用。您是否也尝试过使用
getHistoricalTouchMajor
getHistoricalTouchMajor
等?可能还值得尝试
getSize
getHistoricalSize
。有趣的是,我们在历史方法上遇到了一个编码错误。但我想了解更多细节:你是说你用历史方法取得了成功,还是回答中提到的那些方法?您能否详细说明一下,您在哪些设备上达到了预期的效果?(详细说明想要的结果也将非常感谢):)不幸的是,我不记得这些设备。我当时工作的地方有几百种不同的Android设备。我在我的Moto X上试过,得到了反映触摸尺寸的主要/次要数字。但大调/小调总是平等的。方向总是0。所以这似乎是一种常见的情况。我可以想象,带有手写笔的东西(比如Galaxy Note)会返回更好的值。您不应该在历史方法上出现编码错误。您是否先检查MotionEvent.getHistorySize()了?观察当前和历史事件通常是一个好主意。