首页 > 技术文章 > 手势识别器

324sige 2016-08-03 18:02 原文

一、

 @Override
    public boolean onTouchEvent(MotionEvent event) {
        //委托给手势识别器处理
        mDetector.onTouchEvent(event);
        return super.onTouchEvent(event);
    }

  两种实现方式

     /**
         * 手势识别
         */
       mDetector=new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){
           //监听手势滑动事件
           /**
            *e1滑动的起点,e2滑动的终点
            * velocityX水平速度,velocityY垂直速度
            */
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

                //向左滑,下一页
                if (e1.getRawX() - e2.getRawX() > 200){

                }
                //向右滑,上一页
                if (e2.getRawX() - e1.getRawX() > 200){

                }
                return super.onFling(e1, e2, velocityX, velocityY);
            }
        });

  

      mDetector=new GestureDetector(this, new GestureDetector.OnGestureListener() {
            @Override
            public boolean onDown(MotionEvent e) {
                return false;
            }

            @Override
            public void onShowPress(MotionEvent e) {

            }

            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return false;
            }

            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                return false;
            }

            @Override
            public void onLongPress(MotionEvent e) {

            }

            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                return false;
            }
        }

  

推荐阅读