之前我分享過
Android
的MotionEvent
事件评汰,在使用onTouchEvent(MotionEvent event)
方法的時候,我們可以通過GestureDetector
來完成不同手勢的識別。
GestureDetector簡述
GestureDetector
,俗稱手勢檢測具伍,用于輔助檢測用戶的單擊藕筋、滑動纵散、長按、雙擊等行為隐圾。
GestureDetector的接口
GestureDetector
主要提供以下兩個接口:
-
OnGestureListener
; -
OnDoubleTapListener
;
OnGestureListener
OnGestureListener
會有以下的動作檢測回調(diào):
-
onDown
,用戶按下屏幕; -
onShowPress
,如果按下的時間超過瞬間伍掀,而且在按下的時候沒有松開或者是拖動的,就會回調(diào)該事件; -
onSingleTapUp
,一次單獨的輕擊抬起操作,也就是輕擊一下屏幕暇藏,立刻抬起來蜜笤,才會有這個觸發(fā);如果除了Down以外還有其它操作,那就不再是Single操作了,所以也就不會觸發(fā)這個事件; -
onScroll
盐碱,在屏幕上拖動把兔,無論是用手拖動view,或者是以拋的動作滾動瓮顽,都會多次觸發(fā),這個方法在ACTION_MOVE動作發(fā)生時就會觸發(fā); -
onLongPress
垛贤,長按觸摸屏,超過一定時長觸發(fā)該事件回調(diào); -
onFling
趣倾,滑動屏幕聘惦,用戶按下觸摸屏、快速移動后松開儒恋,由1個MotionEvent ACTION_DOWN, 多個ACTION_MOVE, 1個ACTION_UP觸發(fā);
OnDoubleTapListener
OnDoubleTapListener
主要有以下幾個事件回調(diào):
-
onSingleTapConfirmed
,單擊事件善绎,用來判定該次點擊是SingleTap而不是DoubleTap,如果連續(xù)點擊兩次就是DoubleTap手勢诫尽,如果只點擊一次禀酱,系統(tǒng)等待一段時間后沒有收到第二次點擊則判定該次點擊為SingleTap而不是DoubleTap,然后觸發(fā)SingleTapConfirmed事件牧嫉。; -
onDoubleTap
,雙擊事件; -
onDoubleTapEvent
剂跟,雙擊間隔之間的回調(diào),指觸發(fā)onDoubleTap以后酣藻,在雙擊之間發(fā)生的其它動作曹洽,包含down、up和move事件;
SimpleOnGestureListener
SimpleOnGestureListener
是GestureDetector
的外部類辽剧,是對OnGestureListener
和OnDoubleTapListener
的集成送淆,包含了這兩個接口的所有必須實現(xiàn)的函數(shù)而且都是已經(jīng)重寫的,所有的方法都是空的怕轿。