學習記錄自《Android開發藝術探索》.
GestureDetecor
手勢檢測,用於輔助檢測用戶單擊、滑動、長按、雙擊等行爲.
代碼如下
private final GestureDetector mGestureDetector;
public StudyViewGestureDetector(Context context) {
super(context);
//GestureDetector 手勢檢測 用於輔助檢測用戶的單機、滑動、長按、雙擊等行爲
mGestureDetector = new GestureDetector(context,
new GestureDetector.SimpleOnGestureListener() {
//雙擊
@Override
public boolean onDoubleTap(MotionEvent e) {
return super.onDoubleTap(e);
}
//單擊
@Override
public boolean onSingleTapUp(MotionEvent e) {
return super.onSingleTapUp(e);
}
//快速滑動
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
return super.onFling(e1, e2, velocityX, velocityY);
}
//拖動
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return super.onScroll(e1, e2, distanceX, distanceY);
}
//長按
@Override
public void onLongPress(MotionEvent e) {
super.onLongPress(e);
}
});
//解決長按無法拖動的現象
mGestureDetector.setIsLongpressEnabled(false);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
//是否消費
return mGestureDetector.onTouchEvent(event);
}