Android里有两个类
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener

1) 新建一个类继承SimpleOnGestureListener,HahaGestureDetectorListener ,可以实现以下event事件。

booleanonDoubleTap(MotionEvent e)
解释:双击的第二下Touch down时触发

booleanonDoubleTapEvent(MotionEvent e)
解释:双击的第二下Touch down和up都会触发,可用e.getAction()区分。

booleanonDown(MotionEvent e)
解释:Touch down时触发

booleanonFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解释:Touch了滑动一点距离后,up时触发。

voidonLongPress(MotionEvent e)
解释:Touch了不移动一直Touch down时触发

booleanonScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解释:Touch了滑动时触发。

voidonShowPress(MotionEvent e)
解释:Touch了还没有滑动时触发

与onDown,onLongPress比较 :onDown只要Touch down一定立刻触发。
而Touchdown后过一会没有滑动先触发onShowPress再是onLongPress。
所以Touchdown后一直不滑动,onDown->onShowPress->onLongPress这个顺序触发。


booleanonSingleTapConfirmed(MotionEvent e)
booleanonSingleTapUp(MotionEvent e)
解释:上面这两个函数都是在touch down后又没有滑动(onScroll),又没有长按(onLongPress),然后Touchup时触发。

点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed

点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed


2)在view的新建一个GestureDetector的对象。
构造函数里
gestureDetector = new GestureDetector(new HahaGestureDetectorListener());

然后在View的onTouchEvent里以下这样用,就可以在刚才1)弄的事件里写自己的代码了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}

更多相关文章

  1. android侧滑菜单实现
  2. Android中各种onTouch事件
  3. Android中实现滑动的七种方式
  4. Android中实现滑动的七种方式总结
  5. Android中丰富多彩的onTouch事件
  6. android GridView 去掉自带点击边框效果和禁止上下滑动
  7. android GridView 去掉自带点击边框效果和禁止上下滑动
  8. Android(安卓)各种专业术语解释
  9. android中处理各种触摸事件

随机推荐

  1. android jni 调用static native void met
  2. android sensorsimulator使用介绍
  3. Android(安卓)SDK 离线下载安装
  4. android 9.0 收到通知消息亮屏
  5. android 设置标题
  6. 移动端区分安卓系统和ios系统
  7. Android(安卓)Retrofit 2.0框架上传图片
  8. 查看已經下載好ANDROID源碼是什麽版本號
  9. MacOS 下Android Studio NDK 环境搭建与
  10. Android HapticFeedback(震动反馈)介绍