gpt4 book ai didi

android - 获取android sendevent坐标比例因子

转载 作者:行者123 更新时间:2023-11-30 03:37:55 25 4
gpt4 key购买 nike

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

最佳答案

在装有 CyanogenMod 7.2 (Android 2.3.7) 的摩托罗拉 Defy 上,我可以通过调用 getevent 获取触摸设备(以及所有其他事件类型)返回的扫描仪坐标的最小值和最大值-p/dev/input/event3:

~ # 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

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

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

let xScanner=$(( $xPix * ($xMax-$xMin) / 479 + $xMin ))
let yScanner=$(( $yPix * ($yMax-$yMin) / 853 + $yMin ))

非常适合我。

关于android - 获取android sendevent坐标比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16337656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com