3.事件處理之多點觸摸與手勢識別

簡介:所謂的多點觸碰就是多個手指在屏幕上進行操作,Android系統(tǒng)本身可以處理多達256個手指的觸摸。


MotionEvent event即一個觸摸事件。對屏幕的幾乎所有操作都會觸發(fā)事件,如點擊、放開、滑動等

? ? ? ? ? ?//多點觸碰需要,保證多個手指操作時的動作判斷是正確的

? ? ? ? ? ?switch(event.getAction() & MotionEvent.ACTION_MASK) 或者event.getActionMasked()

? ? ? ? ? ? ? ? ? ? ?MotionEvent.ACTION_DOWN:在第一個點被按下時觸發(fā)

? ? ? ? ? ? ? ? ? ? ?MotionEvent.ACTION_UP:當屏幕上唯一的點被放開時觸發(fā)

? ? ? ? ? ? ? ? ? ? ?MotionEvent.ACTION_POINTER_DOWN:當屏幕上已經有一個點被按住,此時再按下其他點時觸發(fā)。

? ? ? ? ? ? ? ? ? ? ?MotionEvent.ACTION_POINTER_UP:當屏幕上有多個點被按住,松開其中一個點時觸發(fā)(即非最后一個點被放開時)。

? ? ? ? ? ? ? ? ? ? ?MotionEvent.ACTION_MOVE:當有點在屏幕上移動時觸發(fā)。值得注意的是,由于它的靈敏度很高,而我們的手指又不可能完全靜 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 止 (即使我們感覺不到移動,但其實我們的手指也在不停地抖動),所以實際的情況是,基本上只 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 要有點在屏幕上,此事件就會一直不停地被觸發(fā)。

簡單的流程大概是這樣:

? ? ? ?當我們一個手指觸摸屏幕 ——> 觸發(fā)ACTION_DOWN事件

? ? ? ?接著有另一個手指也觸摸屏幕 ——> 觸發(fā)ACTION_POINTER_DOWN事件,如果還有其他手指觸摸,繼續(xù)觸發(fā)

? ? ? ?有一個手指離開屏幕 ——> 觸發(fā)ACTION_POINTER_UP事件,繼續(xù)有手指離開,繼續(xù)觸發(fā)

? ? ? ?當最后一個手指離開屏幕 ——> 觸發(fā)ACTION_UP事件

? ? ? ?而且在整個過程中,ACTION_MOVE事件會一直不停地被觸發(fā)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容