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