Android MotionEvent压力测量单位

Android MotionEvent pressure unit of measurement

我正在使用 MotionEvent 实例中的 getPressure(index) 方法来获取应用于屏幕的压力值。

我想知道如何将该值至少转换为标准测量单位的近似值。

在Android中压力值是一个从0到1的浮点数。我需要以某种方式用牛顿来表示它。 据我了解,这在不同设备上是不同的,因此不可能获得真正精确的单位测量值,但我可以接受近似值。

对于手写笔以最大力触摸屏幕(设备测量 1.0f 的压力)来说,以牛顿为单位的量是多少是正常的

getPressure returns 值 0-1 因为计算压力的方式取决于设备。有些设备会根据手指触摸屏幕的面积来计算该值。因此,除非您为每个设备编写解决方案,否则可能无法以适用于多个 Android 设备的方式转换为牛顿。

我认为你只能猜测,并且知道结果会受到巨大的不确定性影响。我看到的解决方案:

  1. 在屏幕上放置一个已知重量的合适物体。对屏幕不了解,但如果需要人皮来触发事件,可以将手指放在屏幕上(不要用力),然后在手指上放一些东西。

  2. 拿一支手写笔,通过调试了解需要多大的力才能获得 0.5f 结果。然后拿一个秤(这里是外国说话者;我是说测量重量的工具..?)并用手写笔在上面施加相同的压力,然后读取结果。

在这两种情况下,您都可以有一个地图点(例如,0.5f -> 10 N),然后假设一个线性相关性(也知道 0f -> 0 N)来填充整个范围。

如果有耐心,您也可以填充不同的值 - 我不希望这种关系实际上是线性的。