欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android從觸碰屏幕開始的事件采集解析及分發(fā)

 更新時(shí)間:2023年06月12日 10:59:14   作者:superme_  
這篇文章主要為大家介紹了Android從觸碰屏幕開始的事件采集解析及分發(fā),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1 原始事件信息

打開模擬器, 或者用usb把手機(jī)連接上電腦并打開手機(jī)上面的開發(fā)者模式, (這里為了截圖方便用了模擬器)打開cmd, 輸入adb shell getevent回車, 然后點(diǎn)擊模擬器或者手機(jī)后, 就會(huì)看到有N多行的/dev/input/event......輸出. 其實(shí), 這些信息就是最原始的事件信息.

2 信息分析

cmd重新執(zhí)行adb shell getevent -t -l, 再次點(diǎn)擊手機(jī)的某個(gè)app, 顯示出的信息是這樣的:

是手機(jī)或模擬器開機(jī)后到命令執(zhí)行時(shí)的時(shí)間間隔, 后面顯示的是具體命令, 其中, /dev/input/event1表示的是屏幕的輸入事件, 第一個(gè)ABS_MT_TRACKING_ID 表示采集信息開始, 后一個(gè)ABS_MT_TRACKING_ID表示采集信息結(jié)束, ABS_MT_PRESSURE表示的是屏幕感受到的壓力值, SYN_REPORT 表示的是同步數(shù)據(jù), 最重要的是ABS_MT_POSITION_X和ABS_MT_POSITION_Y, 毫無(wú)疑問(wèn), 這個(gè)就是表示屏幕感受到的觸碰坐標(biāo)位置. 最右邊的一列是16進(jìn)制的值.

其他的信息我們可以先忽略, 最主要的是要記錄時(shí)間和坐標(biāo)點(diǎn), 接下來(lái)就是把采集到的坐標(biāo)點(diǎn)轉(zhuǎn)換成10進(jìn)制的坐標(biāo)點(diǎn), x坐標(biāo)采集到的值是00005487,轉(zhuǎn)換10進(jìn)制是21639, 同理, y坐標(biāo)轉(zhuǎn)換前是00006b5b, 轉(zhuǎn)換后是27483, 接下來(lái)需要根據(jù)公式來(lái)獲取到真正的應(yīng)用層能識(shí)別的坐標(biāo)系, 具體公式為:

手機(jī)像素我們可以通過(guò)代碼獲取當(dāng)前手機(jī)的像素, 但是xmin和xmax, 以及ymin和ymax是什么呢?我們還是通過(guò)cmd用adb shell getevent -p命令來(lái)獲取. 執(zhí)行命令后,拉到最下方, 看到如下圖示:

我們找到0035和0036的行, 即

   0035  : value 0, min 0, max 1727, fuzz 0, flat 0, resolution 0

   0036  : value 0, min 0, max 1887, fuzz 0, flat 0, resolution 0

0035所在的行就是x信息, 0036所在的行就是y信息, 每行的min值和max值對(duì)應(yīng)上面公式的min和max, 所以我這里最終轉(zhuǎn)換成的x, y坐標(biāo)結(jié)果如下: (我的模擬器經(jīng)過(guò)代碼獲取的寬高分辨率分別是1728, 1888)

x = (19b - 0) * 1728 /(1727-0) = 411 * 1728 / 1727 = 

y = (405 - 0) * 1888 / (1887-0) = 405

以上就是Android從觸碰屏幕開始的事件采集解析及分發(fā)的詳細(xì)內(nèi)容,更多關(guān)于Android觸碰屏幕事件采集分發(fā)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論