美文网首页
GestureDetector 手势的检测

GestureDetector 手势的检测

作者: 再见亦是泪丶丶 | 来源:发表于2017-03-29 15:39 被阅读0次

    GestureDetector

    手势检查,用于辅助检查用户的单击、滑动、长按、双击等行为。
    首先,需要创建一个GestureDetector对象并实现OnGestureListener的接口,如下代码块所示:

    GestureDetector gestureDetector = new GestureDetector(this,new GestureDetector.OnGestureListener() {
                @Override
                public boolean onDown(MotionEvent e) {
                    Log.d(TAG, "onDown: 手指轻轻触摸屏幕的一瞬间");
                    return false;
                }
    
                @Override
                public void onShowPress(MotionEvent e) {
                    Log.d(TAG, "onShowPress: 手指轻轻触摸屏幕,尚未松开或拖动");
                }
    
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    Log.d(TAG, "onSingleTapUp: 手指松开");
                    return false;
                }
    
                @Override
                public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
                    Log.d(TAG, "onScroll: 手指按下屏幕并拖动");
                    Log.d(TAG, "onScroll: "+distanceX);
                    Log.d(TAG, "onScroll: "+distanceX);
                    return false;
                }
    
                @Override
                public void onLongPress(MotionEvent e) {
                    Log.d(TAG, "onLongPress: 长按");
                }
    
                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                    Log.d(TAG, "onFling: 按下屏幕,快速滑动后松开");
                    return false;
                }
            });
    //解决长按屏幕后无法拖动的现象
    gestureDetector .setIsLongpressEnabled(false);
    

    手势监听的过程有了,但是我们还需要去接管目标View的onTouchEvent方法,在待监听View的onTouchEvent方法中添加如下代码:

       @Override
        public boolean onTouchEvent(MotionEvent event) {
            return gestureDetector.onTouchEvent(event);
    

    实际开发过程中,可以不适用GestureDetector,完全可以在View 的onTouchEvent方法中实现所需监听,这个根据个人喜好而定。
    tips:如果只是监听滑动相关的,建议在onTouchEvent中实现,如果需要监听双击这种行为的话,就适用GestureDetector。

    相关文章

      网友评论

          本文标题:GestureDetector 手势的检测

          本文链接:https://www.haomeiwen.com/subject/erzeottx.html