GestureDetector使用

GestureDetector是view包下的一个子类,用于来监听手指在VIEW上得各种动作。当我们需要监听手指在屏幕上得按下、按压、A点到B点、滑动等各种手势监听的时候就可以用到它了。

主要方法

手指按下去的时候
boolean onDown(MotionEvent e);

按压事件,onDown后调用。
void onShowPress(MotionEvent e);

手指抬起
boolean onSingleTapUp(MotionEvent e);

手指的移动事件
e1按下去的第一个点
e2移动的点
distanceX 距离上一次x的距离
distanceY 距离上一次y的距离
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY);

长按
onLongPress(MotionEvent e)

a点到b点滑动触发的事件
e1按下去的点
e2滑动后抬起来的点
velocityX 每秒x滑动的像素
velocityY 每秒y滑动的像素
onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)

使用

 private GestureDetector mDetector;

...
省略初始化代码
mDetector=new GestureDetector(getContext(),new MyGestureListener());
...

//或者onTouchEvent
  @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        mDetector.onTouchEvent(event);
        return true;
    }

   public static class MyGestureListener extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onDown(MotionEvent e) {
            return super.onDown(e);
        }


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


        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            return super.onScroll(e1, e2, distanceX, distanceY);
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容