91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android event事件錄制回放 --2 touch事件分析

發布時間:2020-07-31 23:52:54 來源:網絡 閱讀:1772 作者:wo153 欄目:移動開發


二、touch事件分析


1、機器touch設備的具體信息
android event事件錄制回放  --2 touch事件分析android event事件錄制回放  --2 touch事件分析
分析:此設備名字:mtk-tpd

          支持:key abs

          支持abs的type:0000 0001 0018...

          type0035支持的最大取值為480


2、touch 事件 

觸摸事件的type:

#define SYN_REPORT 0

#define SYN_CONFIG 1

#define SYN_MT_REPORT 2

……………………… ...

#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */

#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */

#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */

#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */

#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */

#define ABS_MT_POSITION_X 0x35 /* Center X ellipse position */

#define ABS_MT_POSITION_Y 0x36 /* Center Y ellipse position */

#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */

#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */

區分手機設備單點還是多點:

int EventHub::open_device(const char *deviceName)

{

………………………

if (test_bit(ABS_MT_TOUCH_MAJOR, abs_bitmask)

&& test_bit(ABS_MT_POSITION_X, abs_bitmask)

&& test_bit(ABS_MT_POSITION_Y, abs_bitmask)) {

device->classes |= CLASS_TOUCHSCREEN | CLASS_TOUCHSCREEN_MT;

// LOGI("It is a multi-touch screen!");

//single-touch?

else if (test_bit(BTN_TOUCH, key_bitmask)

&& test_bit(ABS_X, abs_bitmask) 

&& test_bit(ABS_Y, abs_bitmask)) {

device->classes |= CLASS_TOUCHSCREEN;

// LOGI("It is a single-touch screen!");

}

……………… ..

}


對于一個Touch事件,不同機型會有不同的組成,你用getevent顯示出來的也不一樣。可以通過下面幾點去組成一個touch事件:

1、是否支持BTN_TOUCH,通過判斷該abs設備是否還支持key事件來判斷是否需要BTN_TOUCH,像

android event事件錄制回放  --2 touch事件分析

android event事件錄制回放  --2 touch事件分析這個就是支持key事件的,而且持之BTN_TOUCH(014a :十進制為330)。對于這種設備,

在發送touchdown事件的時候需要添加 eventX 0001 014a 1的事件,對應在touchUp的時候需要添加 eventX 0001 014a 0。

當不支持BTN_TOUCH的時候,就要省去該事件語句

2、判斷多點觸摸的協議類型,根據判斷是否支持ABS_MT_SLOT。

多點觸摸協議可以參考http://blog.csdn.net/droidphone/article/details/8434768

文章中詳細說明了多點觸摸協議的兩種類型,還有兩種類型分別的事件語句組成

A:有狀態類型 

ABS_MT_TRACKING_ID touchDown必須要有值,touchUp的時候值為-1

同步語句只要SYN_REPORT

B:無狀態類型

ABS_MT_TRACKING_ID touchDown必須要有值,touchUp的時候值為0

同步語句要包括:SYN_REPORT 、SYN_MT_REPORT

3、對于touchDown,還必須包括:ABS_MT_POSITION_X

                           ABS_MT_POSITION_Y

                           SYN_REPORT

                           ABS_MT_TOUCH_MAJOR

                           ABS_MT_PRESSURE

                                         

4、對于touchMove,還必須包括: ABS_MT_POSITION_X

                                ABS_MT_POSITION_Y

                                SYN_REPORT

                                (無狀態)ABS_MT_TRACKING_ID、SYN_MT_REPORT

                                ABS_MT_TOUCH_MAJOR

5、對于touchUP,還必須包括:

          有狀態:ABS_MT_TRACKING_ID -1
                       BTN_TOUCH  0
                       SYN_REPORT
          無狀態:ABS_MT_TRACKING_ID 0
                       ABS_MT_TOUCH_MAJOR 0
                       BTN_TOUCH  0
                       SYN_MT_REPORT
                       SYN_REPORT
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托里县| 阿荣旗| 桐城市| 彭山县| 团风县| 平陆县| 保山市| 灌南县| 和田市| 德江县| 乌兰浩特市| 绥江县| 锡林浩特市| 凌源市| 平顶山市| 阿克苏市| 昌平区| 拜泉县| 修水县| 马山县| 潞西市| 丽江市| 绿春县| 彭山县| 澄城县| 灵山县| 绍兴市| 朝阳市| 加查县| 台山市| 调兵山市| 恭城| 高州市| 丰县| 甘肃省| 江山市| 珲春市| 浦东新区| 定日县| 祁门县| 连州市|