Android进阶篇GestureDetector初探

GestureDetector是系统提供的一个监听手势在屏幕操作的类.

使用方法也挺简单,首先我们应该初始化

GestureDetector对象:

 mGesture = new GestureDetector(this, new GestureListener());

GestureListener类:

    class GestureListener extends SimpleOnGestureListener {
        //滑动的监听
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                float velocityY) {
            try {
                if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                    return false;
                if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    //从右向左滑动
                    return true;
                } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    //从左向右滑动
                    return true;
                }
            } catch (Exception e) {
                // nothing
            }
            return false;
        }
        
        //单击
        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            return false;
        }
    };

手势判断的常量值:

    private static final int SWIPE_MIN_DISTANCE = 120;
    private static final int SWIPE_MAX_OFF_PATH = 250;
    private static final int SWIPE_THRESHOLD_VELOCITY = 200;

在要使用的地方直接拦截onTouchEvent事件:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        return mGesture.onTouchEvent(event);
    }
原文地址:https://www.cnblogs.com/gongcb/p/2859714.html