1.写在前面
项目中与手势有关的操作非常多,所以需要好好学习下与手势有关的知识,先用个看看demoGestureDetector检测的所有手势吧。
2. 干货
一、 要使用GestureDetectorCompat的对象,当实例化时需要传入一个GestureDetector.OnGestureListener接口的对象,所以这里我将类实现GestureDetector.OnGestureListener,同时为了测试双击有关的action,我也实现了 GestureDetector.OnDoubleTapListener,代码如下:
implements
GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener
private GestureDetectorCompat mDetector;
mDetector = new GestureDetectorCompat(this,this);
mDetector.setOnDoubleTapListener(this);
......很多需要重写的方法......
所有触摸操作都会生成一个 MotionEvent的对象,而这个对象中包含了所有操作的所有数据,大致如下属性。很多不知道,但是好像常用的就是其中的几种,比如 action time ….
{action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=505.53192, y[0]=1130.4113, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=44682567, downTime=44682567, deviceId=2, source=0x1002 }