GestureDetector---手勢檢測

學習記錄自《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);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章