首页 > 系统 > Android > 正文

Android-Touch-GestureDetector

2019-11-09 16:22:13
字体:
来源:转载
供稿:网友

相关类简介 GestureDetector 内部监听 OnGestureListener/OnDoubleTapListener/OnContextClickListener 内部监听默认实现类 SimpleOnGestureListener implements OnGestureListener, OnDoubleTapListener, OnContextClickListener

PRivate class gestureListener implements GestureDetector.OnGestureListener{ // 用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发 public boolean onDown(MotionEvent e) { Log.i("MyGesture", "onDown"); Toast.makeText(MainActivity.this, "onDown", Toast.LENGTH_SHORT).show(); return false; } /* * 用户轻触触摸屏,尚未松开或拖动,由一个1个MotionEvent ACTION_DOWN触发 * 注意和onDown()的区别,强调的是没有松开或者拖动的状态 * * 而onDown也是由一个MotionEventACTION_DOWN触发的,但是他没有任何限制, * 也就是说当用户点击的时候,首先MotionEventACTION_DOWN,onDown就会执行, * 如果在按下的瞬间没有松开或者是拖动的时候onShowPress就会执行,如果是按下的时间超过瞬间 * (这块我也不太清楚瞬间的时间差是多少,一般情况下都会执行onShowPress),拖动了,就不执行onShowPress。 */ public void onShowPress(MotionEvent e) { Log.i("MyGesture", "onShowPress"); Toast.makeText(MainActivity.this, "onShowPress", Toast.LENGTH_SHORT).show(); } // 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发 ///轻击一下屏幕,立刻抬起来,才会有这个触发 //从名子也可以看出,一次单独的轻击抬起操作,当然,如果除了Down以外还有其它操作,那就不再算是Single操作了,所以这个事件 就不再响应 public boolean onSingleTapUp(MotionEvent e) { Log.i("MyGesture", "onSingleTapUp"); Toast.makeText(MainActivity.this, "onSingleTapUp", Toast.LENGTH_SHORT).show(); return true; } // 用户按下触摸屏,并拖动,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE触发 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { Log.i("MyGesture22", "onScroll:"+(e2.getX()-e1.getX()) +" "+distanceX); Toast.makeText(MainActivity.this, "onScroll", Toast.LENGTH_LONG).show(); return true; } // 用户长按触摸屏,由多个MotionEvent ACTION_DOWN触发 public void onLongPress(MotionEvent e) { Log.i("MyGesture", "onLongPress"); Toast.makeText(MainActivity.this, "onLongPress", Toast.LENGTH_LONG).show(); } // 用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { Log.i("MyGesture", "onFling"); Toast.makeText(MainActivity.this, "onFling", Toast.LENGTH_LONG).show(); return true; } };
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表