触摸点X坐标的问题

运行软件中的示例程序“实时显示触摸点颜色”
报错:/E: Wrapped java.lang.IllegalArgumentException: x must be < bitmap.width()

如果点击屏幕偏左,是没有问题的。
手机的分辨率是2560*1440

单单显示触摸点的坐标,x的坐标值有超过3000多

最后由 atjl 编辑
管理员

你在在模拟器中用的吧~正常手机 好像没发现这个 问题

回管理员,不是模拟器……我也奇怪
,检测手机右边缘的控件,x的值也就1000多,但是运行实时显示触摸点那段代码,屏幕右边缘X的值就有3000多,所以才出的错,我是直接在auto.js的界面下测试的

最后由 atjl 编辑

是运行那个示例后,x,y得值都放大了,所以能点击的位置是手机偏左偏上的位置,太奇怪
if(!requestScreenCapture()){
toast("请求截图失败");
exit
}
console.show();
sleep(1000);
events.observeTouch();
events.setTouchEventTimeout(300);
events.on("touch", function(point){
var c = colors.toString(images.pixel(captureScreen(), point.x, point.y));
log("(" + point.x + ", " + point.y + "): " + c);
});

最后由 atjl 编辑

@dcrclub
console.show();
toastLog(device.width+","+device.height);
events.observeTouch(); //注册触摸监听器
events.onTouch(function(p){ //触摸事件发生时, 打印出触摸的点的坐标
log(p.x + ", " + p.y); });
上面这段的日志如下:
12:38:22.815/D: 1440,2560
12:38:36.100/D: 3759, 2008

第一行是toastLog(device.width+","+device.height);的输出
第二行是触摸的输出……

管理员

那就不知道了~~~我只在模拟器上见过你说的这个情况...

@admin 回复: 示例报错
回复: 找色函数获得的point坐标与屏幕不一致
这两个老帖跟我反应的应该是同一个问题

@dcrclub 应该是程序在屏幕坐标与图片坐标转换没有处理好,期待开发者的改进?

@dcrclub 安卓上有三大坐标。屏幕坐标,这个就是监听屏幕获得的值,
视图坐标,这个值是可以无限大的,由内容决定
布局坐标,这个就是我们日常检测到的控件坐标,

由此可以判定程序在屏幕坐标和布局坐标之间的转换没有处理 @admin

打开手机开发者选项,显示屏幕坐标,这个坐标是正常的,在1440*2560范围之内

  • 11
    帖子
  • 689
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待