广告位招租

adb shell getevent中获取到的屏幕事件的坐标转换

通过使用adb shell getevent,可以得到如下设备操作后的指令,具体表示的含义,可以参考网上很多的文章,这里就不再叙述

%title插图%numhttps://img-my.csdn.net/uploads/201206/11/1339387382_4009.png
%title插图%num
这里的0035和0036分别表示屏幕上的X坐标和Y坐标,后面的值表示具体的坐标点,通过16进制转换可以得到值1142和1527,而我手机的屏幕分辨率为800*480的,很明显两个点是完全不匹配,那如何转换呢?

在cmd中输入adb shell getevent -p
%title插图%numhttps://img-my.csdn.net/uploads/201206/11/1339387382_4009.png
%title插图%num
找到您的屏幕设备中0035和0036的含义,我的手机中可以看到x的值min为0,max为1172,y的值min为0,max为1900。
这样就找到您的设备的坐标具体大小值,这里计算公式如下:
x=(x-xmin)*480/(xmax-xmin) ;
y=(y-ymin)*800/(ymax-ymin);

这样算出的坐标值就跟您手机的屏幕分辨率相匹配了。
该公式是通过查看androidvncserver源码,然后反向推出的公式,目前碰到的手机min都为0,未测试过不过为0的情况,如果不为0的情况这个公式是错误的,请各位同学补充。

原文链接:https://www.exueyuan.top/615.html,转载请注明出处。

0
广告位招租

评论0

请先

广告位招租
易学手机界面分析工具上线!可用于安卓手机界面,模拟器界面分析,加速自动化开发!查看详情
没有账号? 注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码

Warning: error_log(/www/wwwroot/exueyuan.top/wp-content/plugins/spider-analyser/#log/log-1914.txt): failed to open stream: No such file or directory in /www/wwwroot/exueyuan.top/wp-content/plugins/spider-analyser/spider.class.php on line 2900