GestureDetector各个响应回调简单说明

2017-06-13  本文已影响28人  离人歌
public class MainActivity extends AppCompatActivity {
    public static final String TAG = "MainActivity";
    GestureDetector mGestureDetector;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mGestureDetector = new GestureDetector(new GestureDetectorListener());

    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return mGestureDetector.onTouchEvent(event);
    }
    //distance 向x正方向(右) 为负 ,向Y正反向(下)为负
    class GestureDetectorListener implements GestureDetector.OnGestureListener {

        @Override
        public boolean onDown(MotionEvent e) {
        //手指接触屏幕,ACTION_DOWN
            Log.i(TAG,"onDown:e.getX()="+e.getX()+":e.getY()="+e.getY());
            return false;
        }

        @Override
        public void onShowPress(MotionEvent e) {
        //ACTION_DOWN 之后 LongPress之前  
            Log.i(TAG,"onShowPress:e.getX()="+e.getX()+":e.getY()="+e.getY());

        }

        @Override
        public boolean onSingleTapUp(MotionEvent e) {
        //ACTION_DOWN - ACTION_UP之后 单击事件
            Log.i(TAG,"onSingleTapUp:e.getX()="+e.getX()+":e.getY()="+e.getY());
            return false;
        }

        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        //ACTION_MOVE 滑动 
            Log.i(TAG,"onScroll:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+distanceX+":distanceY="+distanceY);
            return false;
        }

        @Override
        public void onLongPress(MotionEvent e) {
        //长点击 触发前会触发shwoPress
            Log.i(TAG,"onLongPress:e.getX()="+e.getX()+":e.getY()="+e.getY());

        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        //滑动速度大于 MINIMUM_FLING_VELOCITY(默认50)调用。发生在onScroll之后
            Log.i(TAG,"onFling:e1.getX()="+e1.getX()+":e1.getY()="+e1.getY()+"|||e2.getX()="+e2.getX()+":e2.getY()="+e2.getY()+"|||distanceX="+velocityX+":velocityY="+velocityY);
            return false;
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读