zoukankan      html  css  js  c++  java
  • Android简单手势滑动的识别

    提要:

    对于Android中的手势识别可以从以下三个Listener入手——OnTouchListener、OnGestureListener、OnDoubleTapListener。这三个监听器分别是触摸监听、手势滑动监听和屏幕双击操作监听。很多的时候我们需要这些手势识别的操作,例如我们自定义控件的时候就经常会用到。下面就对这三个监听器分别进行介绍。


    触摸监听器OnTouchListener

    让我们的Activity去现实此接口,并重写onTouch方法。重写OnTouchListener的onTouch方法 此方法在触摸屏被触摸,即发生触摸事件(接触和抚摸两个事件)的时候被调用。示范代码如下:

    @Override
        public boolean onTouch(View v, MotionEvent event) {
            detector.onTouchEvent(event);
            Toast.makeText(this, "onTouch", TIME_OUT).show();
            return true;
        }

    手势滑动监听器OnGestureListener

    让我们的Activity去现实此接口,并重写onFling、onLongPress、onScroll、onDown、onShowPress、onSingleTapUp方法。示范代码如下:

    /**
         * 手势滑动时别调用
         */
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                float velocityY) {
      
            if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
                Toast.makeText(this, "向左滑动", TIME_OUT).show();
            } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE) {
                Toast.makeText(this, "向右滑动", TIME_OUT).show();
            }
            return false;
        }
    
        /**
         * 长按时被调用
         */
        @Override
        public void onLongPress(MotionEvent e) {
            Toast.makeText(this, "触发长按回调", TIME_OUT).show();
        }
    
        /**
         * 滚动时调用
         */
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
                float distanceY) {
            Toast.makeText(this, "触发滚动回调", TIME_OUT).show();
            return false;
        }
    
        /**
         * 在按下动作时被调用
         */
        @Override
        public boolean onDown(MotionEvent e) {
            Toast.makeText(this, "按下回调", TIME_OUT).show();
            return false;
        }
    
        /**
         * 按住时被调用
         */
        @Override
        public void onShowPress(MotionEvent e) {
            Toast.makeText(this, "按住不松回调", TIME_OUT).show();
        }
    
        /**
         * 抬起时被调用
         */
        @Override
        public boolean onSingleTapUp(MotionEvent e) {
            Toast.makeText(this, "触发抬起回调", TIME_OUT).show();
            return false;
        }

    双击屏幕监听器OnDoubleTapListener

    让我们的Activity去现实此接口,并重写onDoubleTap、onDoubleTapEvent、onSingleTapConfirmed方法。示范代码如下:

    @Override
        public boolean onDoubleTap(MotionEvent arg0) {
            Toast.makeText(this, "触发双击回调", TIME_OUT).show();
            return false;
        }
    
        @Override
        public boolean onDoubleTapEvent(MotionEvent arg0) {
            Toast.makeText(this, "触发双击的按下跟抬起回调", TIME_OUT).show();
            return false;
        }
    
        @Override
        public boolean onSingleTapConfirmed(MotionEvent arg0) {
            Toast.makeText(this, "触发单击确认回调", TIME_OUT).show();
            return false;
        }


  • 相关阅读:
    Java vs Python
    Compiled Language vs Scripting Language
    445. Add Two Numbers II
    213. House Robber II
    198. House Robber
    276. Paint Fence
    77. Combinations
    54. Spiral Matrix
    82. Remove Duplicates from Sorted List II
    80. Remove Duplicates from Sorted Array II
  • 原文地址:https://www.cnblogs.com/fengju/p/6336120.html
Copyright © 2011-2022 走看看