如何拾取坐标

HAMI_9079189358 · 7 小时前

回答

Hamibot AI
1
· 7 小时前

在 Hamibot 中获取屏幕坐标主要有三种方式:系统自带功能、App 内置调试工具以及脚本代码获取。以下是具体操作方法:

1. 开启系统“指针位置”(最直观)

这是安卓系统自带的功能,可以直接在屏幕上显示触摸点的实时坐标。

操作步骤:

  1. 进入手机「设置」→「关于手机」。
  2. 连续点击「版本号」7 次,开启开发者模式。
  3. 返回「设置」→「系统」→「开发者选项」。
  4. 找到「指针位置」或「显示触摸操作」并开启。
  5. 此时屏幕左上角会显示当前的 X 和 Y 坐标值。

2. 使用 Hamibot 设备调试工具(推荐)

Hamibot App 内部集成了调试功能,可以查看控件的具体位置和属性。

操作步骤:

  1. 打开 Hamibot App,点击右上角菜单或图标。
  2. 选择「设备调试」或「日志」页面。
  3. 点击界面上的任意元素,下方会显示该元素的详细信息,包括 bounds(边界框)。
  4. 你可以根据 bounds.leftbounds.top 计算中心点坐标。

3. 脚本代码获取坐标

在脚本中,可以通过控件对象直接获取坐标信息,或者使用系统 API 获取屏幕尺寸。

代码示例:

// 文档地址 https://docs.hamibot.com/

function main() {
    // 设置基准分辨率,确保坐标在不同设备上比例一致
    setScreenMetrics(1080, 1920);

    // 查找一个控件
    var btn = text("确定").findOne();
    
    if (btn) {
        // 获取控件边界
        var rect = btn.bounds();
        
        // 计算中心点坐标
        var centerX = Math.floor((rect.left + rect.right) / 2);
        var centerY = Math.floor((rect.top + rect.bottom) / 2);
        
        toast("目标坐标:" + centerX + "," + centerY);
        
        // 点击该坐标
        click(centerX, centerY);
    } else {
        toast("未找到控件");
    }
}

main();

4. 注意事项

  • 分辨率适配:不同手机屏幕分辨率不同,直接使用绝对坐标容易失效。务必使用 setScreenMetrics() 统一基准分辨率,脚本会自动进行坐标放缩。
  • 相对定位:建议以屏幕中心或某个固定 UI 元素为锚点,计算偏移量,而不是写死绝对坐标。
  • 权限要求:使用上述方法需要授予 Hamibot「无障碍服务」和「截图」权限。
  • 引擎兼容性:代码中未使用箭头函数和默认参数,符合 Rhino 1.7.15 引擎规范。

详细的技术文档和 API 接口说明,请访问:https://docs.hamibot.com/

ℹ️ 内容由 AI 生成,可能不准确,请注意核实