autojs可视化控件位置

牙叔教程 简单易学

使用场景

当我们找控件的时候, 代码查找的结果, 可能不符合我们的预期,

这个时候, 最好就把找到的控件的位置, 显示在屏幕上面,

方便我们排查问题

显示位置的方式

可以是一个点, 也可以是一个矩形

效果展示

在这里插入图片描述

autojs版本

在这里插入图片描述

原理

autojs有悬浮窗功能, 我们在悬浮窗上加一个画板, 画一个矩形,

假设我们的函数叫做showPosition

他应该有两个参数

第一个参数: 显示的位置信息, 可以是矩形, 也可以是一个点

第二个参数: 时间, 悬浮窗显示多久, 我们设置一个默认值2s

代码讲解

1. 函数签名
/**
 * @description:显示找到的位置
 * @param position {object | array} 位置数据
 * @param t {number | null} 悬浮窗显示时长
 * @return {boolean | error}
 */
function showPosition(position, t) {...}
// position一共三种格式
// 第一种:
// {
//   x:100,
//   y:100
// }
// 第二种:
// [100,200,300,400]
// 第三种:
// [100,200]
2. 设置悬浮窗显示时间的默认值
t = t || 2000;
3. 判断参数position类型
// 对象
if (Object.prototype.toString.call(position) === "[object Object]")
// 数组
if (Object.prototype.toString.call(position) === "[object Array]")    
// 数组长度
if (position.length === 4) {...}   
if (position.length === 2) {...}
4. 提取位置数据
let left = position[0];
let top = position[1];
let right = position[2];
let bottom = position[3];
---或者---
let x = position.x;
let y = position.y;
---或者---
let x = position[0];
let y = position[1];
5. 位置可视化
shwPoint(x, y, t);
showRect(left, top, right, bottom, t);

具体函数

1. 显示矩形
function showRect(left, top, right, bottom, t) {
  let obj = getFloatingWindow();
  obj.paint.setStrokeWidth(30);
  obj.canvas.drawRect(left, top, right, bottom, obj.paint);
  releaseResources(obj, t);
}
2. 显示点
function shwPoint(x, y, t) {
  let obj = getFloatingWindow();
  obj.paint.setStrokeWidth(30);
  obj.canvas.drawPoint(x, y, obj.paint);
  releaseResources(obj, t);
}
3. 释放资源
function releaseResources(obj, t) {
  setTimeout(function () {
    obj.window && obj.window.close();
    obj.bitmap && obj.bitmap.recycle();
    engines.myEngine().forceStop();
  }, t);
}
4. 随机颜色
function getRndColor() {
  let color = new java.util.Random();
  return (randomColor = colors.rgb(color.nextInt(256), color.nextInt(256), color.nextInt(256)));
}

声明

部分内容来自网络

微信公众号 AutoJsPro教程

在这里插入图片描述

QQ群

747748653

完整源码

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牙叔教程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值