• 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);
        }
  • 相关阅读:
    硬盘内部结构简析
    python之集合
    Python中的浅拷贝与深拷贝
    Python内存管理机制
    python之编码decode
    project euler之Large sum
    project euler之 网格中最大的产品
    project euler之 素数的总和
    project euler之特殊的毕达哥拉斯三重奏
    project euler之系列中最大的产品
  • 原文地址:https://www.cnblogs.com/gongcb/p/2859714.html
Copyright © 2020-2023  润新知