Android里有兩個類
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener
1)新建一個類繼承SimpleOnGestureListener,HahaGestureDetectorListener ,可以實現以下event事件:
boolean onDoubleTap(MotionEvent e) :雙擊的第二下Touch down時觸發
boolean onDoubleTapEvent(MotionEvent e) :雙擊的第二下Touch down和up都會觸發,可用e.getAction()區分。
boolean onDown(MotionEvent e) :Touch down時觸發
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) :Touch了滑動一點距離后,up時觸發。
void onLongPress(MotionEvent e) :Touch了不移動一直Touch down時觸發
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) :Touch了滑動時觸發。
void onShowPress(MotionEvent e) :Touch了還沒有滑動時觸發(onDown只要Touch down一定立刻觸發;Touch down后過一會沒有滑動先觸發onShowPress再是onLongPress;Touch down后一直不滑動,onDown->onShowPress->onLongPress這個順序觸發。)
boolean onSingleTapConfirmed(MotionEvent e) ,boolean onSingleTapUp(MotionEvent e) :這兩個函數都是在touch down后又沒有滑動(onScroll),又沒有長按(onLongPress),然后Touchup時觸發。
點擊一下非常快的(不滑動)Touchup: onDown->onSingleTapUp->onSingleTapConfirmed
點擊一下稍微慢點的(不滑動)Touchup: onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
2)在view的新建一個GestureDetector的對象。
構造函數里:gestureDetector = new GestureDetector(new HahaGestureDetectorListener());
然后在View的onTouchEvent里以下這樣用,就可以在剛才1)弄的事件里寫自己的代碼了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}