0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Autojs外部拾取坐标点

汽车电子技术 来源:安卓脚本 作者:稻草人 2023-03-03 14:02 次阅读

对于坐标的操作, 在编写脚本中, 不可避免的会遇到,甚至是取色/截图过程中都需要用到坐标的拾取. 那如果每次都打开指针位置,用起来并不是很方便,在没有root的设备上获取坐标点, 在APP外部是没办法直接来监听屏幕点击事件,但是如果在APP内部则可以监听到用户的点击,那如何既在APP内,又可以操作APP外呢?

答案就是悬浮窗...纯透明,用户不可见的一层悬浮窗,在允许点击悬浮窗的状态下,监听用户的点击和滑动事件, 然后在不允许点击悬浮窗的状态下,转发用户的点击和滑动事件, 这样既监听到了点击,又不影响用户的正常操作.

基础代码:

//auto.waitFor() 注意这个,因为要转发点击事件.所以需要打开无障碍服务,//如果你是低于安卓7.0的用户,则无法使用...auto.waitFor();
var w = floaty.rawWindow( "top" gravity="center" bg="#00000000"/>);
var x_start, y_start, x_end, y_end, time, actionCounts = 1;//悬浮窗全屏, 但不会覆盖到任务栏和导航栏w.setSize(-1, -1);//设置悬浮窗可点, 可点状态下监听用户的点击w.setTouchable(true);
//脚本结束时,关闭悬浮窗events.on("exit", ()=>{ w.close();});
w.top.setOnTouchListener(function(view, event) { switch (event.getAction()) { case event.ACTION_DOWN: //按下事件 w.setTouchable(false); time = new Date(); x_start = event.getRawX(); y_start = event.getRawY(); return true; case event.ACTION_MOVE: //移动事件

return true; case event.ACTION_UP: //抬起事件 swipeTime = new Date() - time; if (Math.abs(event.getRawY() - y_start) > 3 || Math.abs(event.getRawX() - x_start) > 3) { x_end = event.getRawX(); y_end = event.getRawY(); log("滑动坐标: " + x_start + "," + y_start + "---->" + x_end + "," + y_end); threads.start(function () { swipe(x_start, y_start, x_end, y_end, swipeTime); sleep(swipeTime + 100); ui.run(function () { w.setTouchable(true); }); }); } else { log("点击坐标: " + x_start + "," + y_start); threads.start(function () { click(x_start, y_start); ui.run(function () { w.setTouchable(true); }); }) } return true; } return true;});
//保持悬浮窗运行setInterval(()=>{}, 1000)

测试截图如下图的GIF:

图片

如图, 我开启了指针位置. 获取到的坐标和指针位置显示的坐标. 完全一致. 所以这么取点完全没问题.唯一的缺点就是. 动作有滞后性.因为要先监听后转发.所以没法做到实时的操作. 至于各种投屏软件那种实时的滑动原理.我也没有去了解...

因为是最基础的代码. 在此之外我有一些想法和思路分享出来, 在此的基础上,我们是不是可以再做一个悬浮窗.来实时跟踪指针的位置,显示出当前的坐标,当前坐标点的色值, 另外指针滑动抬起时,还可以设置一个询问是否要截图,等等的想法, 如果可以做到点击滑动无延迟是最好的. 有兴趣的就继续深入的研究一下吧.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • APP
    APP
    +关注

    关注

    33

    文章

    1566

    浏览量

    72329
  • 脚本
    +关注

    关注

    1

    文章

    385

    浏览量

    14810
  • root
    +关注

    关注

    1

    文章

    85

    浏览量

    21360
收藏 人收藏

    评论

    相关推荐

    并联机器人快速准确拾取物体

    `▼并联机器人迅速将糖豆放入瓶里  仔细观看我们可以发现,相同颜色的糖豆放在一个瓶里  并联机器人这类设备主要用于精密紧凑的应用场合,竞争点集中在速度、重复定位精度和动态性能等方面。  并联机器人快速拾取枕包牛奶,放入指定位置  并联机器人快速准确拾取物体`
    发表于 09-14 11:37

    labview新手,将鼠标移动的坐标以点簇数组的形式拾取

    具体见图片。就是编到单击可以拾取,但不知道怎么把坐标形成点簇数组。求教各位老师。实在是弄不懂了。
    发表于 11-12 09:11

    贴片机机器拾取的两种基本模式

      到目前为止,机器拾取的工具和方式仍然与手工拾取相似:机械抓取和真空吸取两种基本模式,只不过机器拾取工具的复杂性和过程的速度是手工无法比拟的。如图1所示。  图1 手工元件拾取的工具
    发表于 09-07 15:18

    拾取停止工作

    我按下USB插座附近的小洞的按钮。认为这是拾取板硬复位。现在拾取停止工作,并列举我们“AT91 USB到串行转换器”。有办法修理吗?
    发表于 03-20 09:41

    CAD坐标标注中如何标注普通坐标

    [输入坐标数值定位标注点(A)]:A 键入选项 A 通过输入坐标值获得坐标点;请输入基准坐标测量坐标值或[图上
    发表于 03-11 13:38

    CAD中怎么批量标注坐标?CAD批量标注坐标

    个 回车结束选择;请选择需标注坐标的对象: 回车结束标注;.....2、勾选“仅标图层”,拾取按钮和编辑框亮显,说明此时仅拾取指定图层的特征点,单击“拾取
    发表于 06-06 15:45

    表面肌电信号拾取的专用有源滤波器设计

    表面肌电信号拾取的专用有源滤波器设计 本文介绍了表面肌电信号拾取的专用有源滤波器设计,分析了此滤波器的性能,并与一种医用
    发表于 03-11 15:47 3057次阅读
    表面肌电信号<b class='flag-5'>拾取</b>的专用有源滤波器设计

    C#教程之颜色拾取

    C#教程之颜色拾取器,很好的C#资料,快来学习吧。
    发表于 04-20 11:13 6次下载

    基于Jni技术局部区域拾取功能的快速实现_吴冰冰

    基于Jni技术局部区域拾取功能的快速实现_吴冰冰
    发表于 03-18 09:48 0次下载

    机器视觉让机器人能在储存箱中拾取小型零件

    据报导,随机机器人拾取应用非常具有挑战性,因为指定拾取的零件通常置放松散,且在箱中彼此堆叠在一起。客户希望机器人能从箱中近1万个零件中拾取99%的零件,每个零件只有高5公分、直径4公分,零件尺寸与箱子尺寸的面积比大约为1:900
    发表于 05-10 09:02 1849次阅读

    双麦远距离拾取降噪模块的简单介绍

    主要应用各类音频拾取监听产品,通话产品,录音记录产品等等。能方便快捷的与各类音 频拾取系统连接。
    发表于 01-13 14:05 1365次阅读

    压电特性及能量自拾取特性的研究

    研究人员首先对压电敏感膜进行了制备(图1)。研究所使用的敏感膜是以初始厚度为70μm、密度为0.550g/m³规格的成品PP蜂窝薄膜经气压膨化与电晕极化处理后形成的柔性压电敏感膜。针对该敏感膜,根据压电特性与动能拾取特性研究的需求
    的头像 发表于 06-17 10:50 1084次阅读

    使用Arduino Uno的自动拾取绕线机

    电子发烧友网站提供《使用Arduino Uno的自动拾取绕线机.zip》资料免费下载
    发表于 11-16 10:07 4次下载
    使用Arduino Uno的自动<b class='flag-5'>拾取</b>绕线机

    轻松拾取无需触摸的开源项目

    电子发烧友网站提供《轻松拾取无需触摸的开源项目.zip》资料免费下载
    发表于 07-05 10:49 0次下载
    轻松<b class='flag-5'>拾取</b>无需触摸的开源项目

    A-68立体声远场拾取链接示意图

    电子发烧友网站提供《A-68立体声远场拾取链接示意图.pdf》资料免费下载
    发表于 03-01 10:43 1次下载