获取android sendevent坐标比例因子

时间:2013-05-02 12:06:52

标签: android android-testing

我正在尝试编写一个脚本来测试我的应用程序但是当我使用sendevent时,x和y坐标是错误的。 当我检查getevent输出时,我可以看到坐标乘以1.65 如何以编程方式获得这个比例因子?

1 个答案:

答案 0 :(得分:1)

在我的摩托罗拉Defy上使用CyanogenMod 7.2(Android 2.3.7)我可以通过调用{{1}来获取触摸设备(以及所有其他事件类型)返回的扫描仪坐标的最小值和最大值}:

getevent -p /dev/input/event3

正如您所见,Defy扫描仪坐标的最小值和最大值(事件0035和0036)是xMin = 21,xMax = 1003,yMin = 0,yMax = 941。

利用这些和屏幕的给定分辨率(以像素为单位),任何像素坐标都可以轻松转换为扫描仪坐标。在shell脚本中,这看起来像这样(Moto Defy的屏幕分辨率= 480 x 854 px):

~ # getevent -p /dev/input/event3
getevent -p /dev/input/event3
add device 1: /dev/input/event3
  name:     "qtouch-touchscreen"
  events:
    SYN (0000): 0000  0001  0003
    KEY (0001): 0066  008b  009e  00d9  0102  014a
    ABS (0003): 0000  value 0, min 21, max 1003, fuzz 0 flat 0
                0001  value 0, min 0, max 941, fuzz 0 flat 0
                0010  value 0, min 21, max 1003, fuzz 0 flat 0
                0011  value 0, min 21, max 1003, fuzz 0 flat 0
                0018  value 0, min 0, max 255, fuzz 2 flat 0
                001c  value 0, min 0, max 20, fuzz 2 flat 0
                0030  value 0, min 0, max 255, fuzz 2 flat 0
                0032  value 0, min 0, max 20, fuzz 2 flat 0
                0035  value 0, min 21, max 1003, fuzz 0 flat 0
                0036  value 0, min 0, max 941, fuzz 0 flat 0

完美适合我。