對于坐標的操作, 在編寫腳本中, 不可避免的會遇到,甚至是取色/截圖過程中都需要用到坐標的拾取. 那如果每次都打開指針位置,用起來并不是很方便,在沒有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
+關注
關注
33文章
1592瀏覽量
75985 -
腳本
+關注
關注
1文章
409瀏覽量
29193 -
root
+關注
關注
1文章
86瀏覽量
22099
發布評論請先 登錄
相關推薦
熱點推薦
并聯機器人快速準確拾取物體
`▼并聯機器人迅速將糖豆放入瓶里 仔細觀看我們可以發現,相同顏色的糖豆放在一個瓶里 并聯機器人這類設備主要用于精密緊湊的應用場合,競爭點集中在速度、重復定位精度和動態性能等方面。 并聯機器人快速拾取枕包牛奶,放入指定位置 并聯機器人快速準確拾取物體`
發表于 09-14 11:37
貼片機機器拾取的兩種基本模式
到目前為止,機器拾取的工具和方式仍然與手工拾取相似:機械抓取和真空吸取兩種基本模式,只不過機器拾取工具的復雜性和過程的速度是手工無法比擬的。如圖1所示。 圖1 手工元件拾取的工具
發表于 09-07 15:18
CAD中怎么批量標注坐標?CAD批量標注坐標?
個 回車結束選擇;請選擇需標注坐標的對象: 回車結束標注;.....2、勾選“僅標圖層”,拾取按鈕和編輯框亮顯,說明此時僅拾取指定圖層的特征點,單擊“拾取
發表于 06-06 15:45
表面肌電信號拾取的專用有源濾波器設計
表面肌電信號拾取的專用有源濾波器設計
本文介紹了表面肌電信號拾取的專用有源濾波器設計,分析了此濾波器的性能,并與一種醫用
發表于 03-11 15:47
?3463次閱讀
機器視覺讓機器人能在儲存箱中拾取小型零件
據報導,隨機機器人拾取應用非常具有挑戰性,因為指定拾取的零件通常置放松散,且在箱中彼此堆疊在一起。客戶希望機器人能從箱中近1萬個零件中拾取99%的零件,每個零件只有高5公分、直徑4公分,零件尺寸與箱子尺寸的面積比大約為1:900
發表于 05-10 09:02
?2215次閱讀
壓電特性及能量自拾取特性的研究
研究人員首先對壓電敏感膜進行了制備(圖1)。研究所使用的敏感膜是以初始厚度為70μm、密度為0.550g/m3規格的成品PP蜂窩薄膜經氣壓膨化與電暈極化處理后形成的柔性壓電敏感膜。針對該敏感膜,根據壓電特性與動能拾取特性研究的需求
關于Autojs外部拾取坐標點
評論