boolean onDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发
boolean onDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。
boolean onDown(MotionEvent e)
解释:Touch down时触发
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。
void onLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发
boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。
void onShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发
(与onDown,onLongPress比较
onDown只要Touch down一定立刻触发。
而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。
boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。
点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
有了这么多的响应方式,我们能更加方便的对用户的触摸操作进行响应,对各种动作都有所对应。那么这个类如何使用呢,其实非常简单,在view的新建一个GestureDetector的对象。
构造函数里
gestureDetector = new GestureDetector(new SelfGestureDetectorListener());
然后在View的onTouchEvent里以下这样用,就可以在gestureDetector的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}
有关上面的 onTouchEvent方法,我们可以直接判断MotionEvent的类型,对于手势移动仅仅捕获ACTION_MOVE即可,我们通过参数MotionEvent e1, MotionEvent e2,float distanceX, float distanceY可以获取操作变化。
比如 distanceX > 0 向右边移动,distanceX < 0 则向左边,distanceY > 0 向上滚动, distanceY < 0 向下滚动。测试时我们可以封装该类,每个方法触发时使用Logcat打印出动作和x,y坐标即可了解实际的状况,更深入和复杂的手势探测,Android开发网将在下次写到。
http://www.android123.com.cn/androidkaifa/465.html
相关推荐
人体关键点、人体属性、动作捕捉、手势识别项目;易于使用,用于交流学习
博客<户手势检测-GestureDetector使用详解>对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/39520901
在Android系统中,每一次手势交互都会依照以下顺序执行。 1. 接触接触屏一刹那,触发一个MotionEvent事件。 2. 该事件被OnTouchListener监听,在其...3. 通过GestureDetector(手势识别器)转发次MotionEvent对象。
主要介绍了android使用手势识别的方法,介绍了单击触摸屏触发的事件和双击事件的使用等方法,大家参考使用吧
GestureDetector手势识别类详解,帮助理解快速实现复杂手势需求
文件中包含两种实现手势识别功能的工程,一种是使用GestureDetector实现手势识别,另一种是使用GestureOverlayView实现手势识别。
主要为大家详细介绍了Android GestureDetector手势滑动使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
博客《用户手势检测-GestureDetector使用详解》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/39520901
Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要...
主要为大家详细介绍了Android自定义viewgroup可滚动布局,GestureDetector手势监听,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了Android手势识别器GestureDetector的使用方法解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在Android系统中,手势的识别是通过GestureDetector.OnGestureListener接口来实现的,不过William翻遍了Android的官方文档也没有找到一个相关的例子,API Demo中的TouchPaint也仅仅是提到了onTouch事件的处理,没有...
Android根据手势控制视频音量亮度快进,android开发之GestureDetector手势识别(调节音量、亮度、快进和后退)
不过,为了提高我们的APP的用户体验,有时候我们需要识别用户的手势,Android给我们提供的手势识别工具GestureDetector就可以帮上大忙了。 基础 GestureDetector的工作原理是,当我们接收到用户触摸消息时,将这个...
一、概述 当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing...Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的on
Android多点触控 自定义GestureDetector 自定义手势
对GestureOverlayView, GestureDetector,SimpleOnGestureListener的简单使用。