GestureDetector類可以用來檢測各種手勢事件
該類有兩個回調接口,分別用來通知具體的事件。
GestureDetector.OnDoubleTapListener:用來通知DoubleTap事件,類似於鼠標的雙擊事件,該接口有如下三個回調函數:
1. onDoubleTap(MotionEvent e):通知DoubleTap手勢,2. onDoubleTapEvent(MotionEvent e):通知DoubleTap手勢中的事件,包含down、up和move事件(這裏指的是在雙擊之間發生的事件,例如在同一個地方雙擊會產生DoubleTap手勢,而在DoubleTap手勢裏面還會發生down和up事件,這兩個事件由該函數通知);
3. onSingleTapConfirmed(MotionEvent e):用來判定該次點擊是SingleTap而不是DoubleTap,如果連續點擊兩次就是DoubleTap手勢,如果只點擊一次,系統等待一段時間後沒有收到第二次點擊則判定該次點擊爲SingleTap而不是DoubleTap,然後觸發SingleTapConfirmed事件。
GestureDetector.OnGestureListener:用來通知普通的手勢事件,該接口有如下六個回調函數:
1. onDown(MotionEvent e):down事件;2. onSingleTapUp(MotionEvent e):一次點擊up事件;
3. onShowPress(MotionEvent e):down事件發生而move或則up還沒發生前觸發該事件;
4. onLongPress(MotionEvent e):長按事件;
5. onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY):滑動手勢事件;
6. onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY):在屏幕上拖動事件。