Android MotionEvent压力测量单位

时间:2015-09-21 14:55:20

标签: android motionevent

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

我试图弄清楚如何将该值转换为至少近似的标准测量单位。

在Android中

压力值是一个从0到1的浮点数。我需要以某种方式用牛顿表示它。 从我的理解,这是不同的设备,所以它不可能得到一个非常精确的单位测量,但我很好的近似。

对于触控笔在全力触摸屏幕时(压力为1.0f的设备),以牛顿为单位的数量是正常的

2 个答案:

答案 0 :(得分:2)

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

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

  2. 使用手写笔,通过调试了解获得0.5f结果所需的力量。然后拿一个刻度(外国扬声器在这里;我指的是测量重量的工具......?)并用触笔对它施加相同的压力,然后读取结果。

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

    有了一些耐心,你也可以填写不同的值 - 我不希望这种关系实际上是线性的。

答案 1 :(得分:0)

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