0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Autojs外部拾取坐標(biāo)點(diǎn)

汽車(chē)電子技術(shù) ? 來(lái)源:安卓腳本 ? 作者:稻草人 ? 2023-03-03 14:02 ? 次閱讀

對(duì)于坐標(biāo)的操作, 在編寫(xiě)腳本中, 不可避免的會(huì)遇到,甚至是取色/截圖過(guò)程中都需要用到坐標(biāo)的拾取. 那如果每次都打開(kāi)指針位置,用起來(lái)并不是很方便,在沒(méi)有root的設(shè)備上獲取坐標(biāo)點(diǎn), 在APP外部是沒(méi)辦法直接來(lái)監(jiān)聽(tīng)屏幕點(diǎn)擊事件,但是如果在APP內(nèi)部則可以監(jiān)聽(tīng)到用戶(hù)的點(diǎn)擊,那如何既在APP內(nèi),又可以操作APP外呢?

答案就是懸浮窗...純透明,用戶(hù)不可見(jiàn)的一層懸浮窗,在允許點(diǎn)擊懸浮窗的狀態(tài)下,監(jiān)聽(tīng)用戶(hù)的點(diǎn)擊和滑動(dòng)事件, 然后在不允許點(diǎn)擊懸浮窗的狀態(tài)下,轉(zhuǎn)發(fā)用戶(hù)的點(diǎn)擊和滑動(dòng)事件, 這樣既監(jiān)聽(tīng)到了點(diǎn)擊,又不影響用戶(hù)的正常操作.

基礎(chǔ)代碼:

//auto.waitFor() 注意這個(gè),因?yàn)橐D(zhuǎn)發(fā)點(diǎn)擊事件.所以需要打開(kāi)無(wú)障礙服務(wù),//如果你是低于安卓7.0的用戶(hù),則無(wú)法使用...auto.waitFor();
var w = floaty.rawWindow( "top" gravity="center" bg="#00000000"/>);
var x_start, y_start, x_end, y_end, time, actionCounts = 1;//懸浮窗全屏, 但不會(huì)覆蓋到任務(wù)欄和導(dǎo)航欄w.setSize(-1, -1);//設(shè)置懸浮窗可點(diǎn), 可點(diǎn)狀態(tài)下監(jiān)聽(tīng)用戶(hù)的點(diǎn)擊w.setTouchable(true);
//腳本結(jié)束時(shí),關(guān)閉懸浮窗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: //移動(dòng)事件

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("滑動(dòng)坐標(biāo): " + 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("點(diǎn)擊坐標(biāo): " + x_start + "," + y_start); threads.start(function () { click(x_start, y_start); ui.run(function () { w.setTouchable(true); }); }) } return true; } return true;});
//保持懸浮窗運(yùn)行setInterval(()=>{}, 1000)

測(cè)試截圖如下圖的GIF:

圖片

如圖, 我開(kāi)啟了指針位置. 獲取到的坐標(biāo)和指針位置顯示的坐標(biāo). 完全一致. 所以這么取點(diǎn)完全沒(méi)問(wèn)題.唯一的缺點(diǎn)就是. 動(dòng)作有滯后性.因?yàn)橐缺O(jiān)聽(tīng)后轉(zhuǎn)發(fā).所以沒(méi)法做到實(shí)時(shí)的操作. 至于各種投屏軟件那種實(shí)時(shí)的滑動(dòng)原理.我也沒(méi)有去了解...

因?yàn)槭亲罨A(chǔ)的代碼. 在此之外我有一些想法和思路分享出來(lái), 在此的基礎(chǔ)上,我們是不是可以再做一個(gè)懸浮窗.來(lái)實(shí)時(shí)跟蹤指針的位置,顯示出當(dāng)前的坐標(biāo),當(dāng)前坐標(biāo)點(diǎn)的色值, 另外指針滑動(dòng)抬起時(shí),還可以設(shè)置一個(gè)詢(xún)問(wèn)是否要截圖,等等的想法, 如果可以做到點(diǎn)擊滑動(dòng)無(wú)延遲是最好的. 有興趣的就繼續(xù)深入的研究一下吧.

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1557

    瀏覽量

    72155
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    382

    瀏覽量

    14761
  • root
    +關(guān)注

    關(guān)注

    1

    文章

    85

    瀏覽量

    21320
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    并聯(lián)機(jī)器人快速準(zhǔn)確拾取物體

    `▼并聯(lián)機(jī)器人迅速將糖豆放入瓶里  仔細(xì)觀看我們可以發(fā)現(xiàn),相同顏色的糖豆放在一個(gè)瓶里  并聯(lián)機(jī)器人這類(lèi)設(shè)備主要用于精密緊湊的應(yīng)用場(chǎng)合,競(jìng)爭(zhēng)點(diǎn)集中在速度、重復(fù)定位精度和動(dòng)態(tài)性能等方面?! 〔⒙?lián)機(jī)器人快速拾取枕包牛奶,放入指定位置  并聯(lián)機(jī)器人快速準(zhǔn)確拾取物體`
    發(fā)表于 09-14 11:37

    labview新手,將鼠標(biāo)移動(dòng)的坐標(biāo)以點(diǎn)簇?cái)?shù)組的形式拾取。

    具體見(jiàn)圖片。就是編到單擊可以拾取,但不知道怎么把坐標(biāo)形成點(diǎn)簇?cái)?shù)組。求教各位老師。實(shí)在是弄不懂了。
    發(fā)表于 11-12 09:11

    貼片機(jī)機(jī)器拾取的兩種基本模式

      到目前為止,機(jī)器拾取的工具和方式仍然與手工拾取相似:機(jī)械抓取和真空吸取兩種基本模式,只不過(guò)機(jī)器拾取工具的復(fù)雜性和過(guò)程的速度是手工無(wú)法比擬的。如圖1所示?! D1 手工元件拾取的工具
    發(fā)表于 09-07 15:18

    拾取停止工作

    我按下USB插座附近的小洞的按鈕。認(rèn)為這是拾取板硬復(fù)位?,F(xiàn)在拾取停止工作,并列舉我們“AT91 USB到串行轉(zhuǎn)換器”。有辦法修理嗎?
    發(fā)表于 03-20 09:41

    CAD坐標(biāo)標(biāo)注中如何標(biāo)注普通坐標(biāo)

    [輸入坐標(biāo)數(shù)值定位標(biāo)注點(diǎn)(A)]:A 鍵入選項(xiàng) A 通過(guò)輸入坐標(biāo)值獲得坐標(biāo)點(diǎn);請(qǐng)輸入基準(zhǔn)坐標(biāo)測(cè)量坐標(biāo)值或[圖上
    發(fā)表于 03-11 13:38

    CAD中怎么批量標(biāo)注坐標(biāo)?CAD批量標(biāo)注坐標(biāo)?

    個(gè) 回車(chē)結(jié)束選擇;請(qǐng)選擇需標(biāo)注坐標(biāo)的對(duì)象: 回車(chē)結(jié)束標(biāo)注;.....2、勾選“僅標(biāo)圖層”,拾取按鈕和編輯框亮顯,說(shuō)明此時(shí)僅拾取指定圖層的特征點(diǎn),單擊“拾取
    發(fā)表于 06-06 15:45

    表面肌電信號(hào)拾取的專(zhuān)用有源濾波器設(shè)計(jì)

    表面肌電信號(hào)拾取的專(zhuān)用有源濾波器設(shè)計(jì) 本文介紹了表面肌電信號(hào)拾取的專(zhuān)用有源濾波器設(shè)計(jì),分析了此濾波器的性能,并與一種醫(yī)用
    發(fā)表于 03-11 15:47 ?2986次閱讀
    表面肌電信號(hào)<b class='flag-5'>拾取</b>的專(zhuān)用有源濾波器設(shè)計(jì)

    C#教程之顏色拾取

    C#教程之顏色拾取器,很好的C#資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-20 11:13 ?6次下載

    基于Jni技術(shù)局部區(qū)域拾取功能的快速實(shí)現(xiàn)_吳冰冰

    基于Jni技術(shù)局部區(qū)域拾取功能的快速實(shí)現(xiàn)_吳冰冰
    發(fā)表于 03-18 09:48 ?0次下載

    機(jī)器視覺(jué)讓機(jī)器人能在儲(chǔ)存箱中拾取小型零件

    據(jù)報(bào)導(dǎo),隨機(jī)機(jī)器人拾取應(yīng)用非常具有挑戰(zhàn)性,因?yàn)橹付?b class='flag-5'>拾取的零件通常置放松散,且在箱中彼此堆疊在一起。客戶(hù)希望機(jī)器人能從箱中近1萬(wàn)個(gè)零件中拾取99%的零件,每個(gè)零件只有高5公分、直徑4公分,零件尺寸與箱子尺寸的面積比大約為1:900
    發(fā)表于 05-10 09:02 ?1801次閱讀

    雙麥遠(yuǎn)距離拾取降噪模塊的簡(jiǎn)單介紹

    主要應(yīng)用各類(lèi)音頻拾取監(jiān)聽(tīng)產(chǎn)品,通話產(chǎn)品,錄音記錄產(chǎn)品等等。能方便快捷的與各類(lèi)音 頻拾取系統(tǒng)連接。
    發(fā)表于 01-13 14:05 ?1349次閱讀

    壓電特性及能量自拾取特性的研究

    研究人員首先對(duì)壓電敏感膜進(jìn)行了制備(圖1)。研究所使用的敏感膜是以初始厚度為70μm、密度為0.550g/m3規(guī)格的成品PP蜂窩薄膜經(jīng)氣壓膨化與電暈極化處理后形成的柔性壓電敏感膜。針對(duì)該敏感膜,根據(jù)壓電特性與動(dòng)能拾取特性研究的需求
    的頭像 發(fā)表于 06-17 10:50 ?1003次閱讀

    使用Arduino Uno的自動(dòng)拾取繞線機(jī)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno的自動(dòng)拾取繞線機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-16 10:07 ?4次下載
    使用Arduino Uno的自動(dòng)<b class='flag-5'>拾取</b>繞線機(jī)

    輕松拾取無(wú)需觸摸的開(kāi)源項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《輕松拾取無(wú)需觸摸的開(kāi)源項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 07-05 10:49 ?0次下載
    輕松<b class='flag-5'>拾取</b>無(wú)需觸摸的開(kāi)源項(xiàng)目

    A-68立體聲遠(yuǎn)場(chǎng)拾取鏈接示意圖

    電子發(fā)燒友網(wǎng)站提供《A-68立體聲遠(yuǎn)場(chǎng)拾取鏈接示意圖.pdf》資料免費(fèi)下載
    發(fā)表于 03-01 10:43 ?1次下載