簡介:所謂的多點觸碰就是多個手指在屏幕上進行操作,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ā)