关于触摸事件处理的一些辅助类和回调方法(上):VelocityTracker
GestureDetector:手势检测,用于辅助检测用户的单击,滑动,长按,双击等行为。下面是使用过程:
可以使用该GestureDetector来接管onTouchEvent。
在自定义View中,使用GestureDetector可以这样:
public MyView extends View{
//......
pubic View(){
//创建对象
mGestureDetector = new GestureDetector(this,mOnGestrueListener);
}
//解决长按屏幕无法拖动的现象
mGestureDetector。setIsLongpressEnabled(false);
public boolean onTouchListener(MotionEvent event){
//接管onTouchEvent()方法
boolean consume = mGestureDetector。onTouchListener(event);
return consume;
}
//.......
}
在Activity中,让GestureDetector接管某个VIew的onTouchEvent(),首先为View设置onTouchListener;然后在让GestureDetector接管onTouchListener,代码如下:
mTouchListener = new View.onTouchListener(){
boolean onTouch(View v, MotionEvent event){
//GestureDetector的初始化参考上面的代码
mGestureDetector.onTouchListener(event);
}
//TouchListener优先于View的onTouchEvent()方法。
view.setOnTouchListent(mTouchListener);
}
下面介绍GestureDetector中的两个内部接口 onGestureListener和onDoubleTaplistener:
OnGestureListener 接口 的公共方法
abstract boolean | onDown(MotionEvente)
当轻触手势按下屏幕 时发生的事件。
手指轻轻触摸屏幕一瞬间,由一个ACTION_DOWN触发 |
abstract boolean | onFling(MotionEvent e1, |