1.Gesture的作用
①在触摸屏上的连续触摸行为,形成某个方向上的移动趋势 (利用手势检测)
②连续画出一个不规则的行为 (利用增加手势)
2.手势检测(GestureDetector)
//创建GestureDetector public class GestureTest extends Activity { GestureDetector detector = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //第一步:用匿名类实现接口,供创建GestureDetector时候使用。 GestureDetector.OnGestureListener gestureListener = new GestureDetector.OnGestureListener() { @Override public boolean onDown(MotionEvent e) { //在屏幕按下时触发 return false; } @Override public void onShowPress(MotionEvent e) { //在屏幕按下、未移动和松开时候触发 } @Override public boolean onSingleTapUp(MotionEvent e) { //在屏幕按下时触发 return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { //在屏幕滑动的时候触发 return false; } @Override public void onLongPress(MotionEvent e) { //在屏幕长按的时候触发 } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //Touch了滑动一点距离后,拿起手时触发。velocityX表示“拖过”动作在横向的速度,velocityY表示“拖过”动作在纵向时的速度 return false; } }; //第二步:构造方法public GestureDetector(Context context,GestureDetector.OnGestureListener listener) detector = new GestureDetector(this,gestureListener); } //第三步:重写Activity的onTouchEvent()方法,并将点击事件给GestureDetector处理 @Override public boolean onTouchEvent(MotionEvent event) { return detector.onTouchEvent(event); } }
注:关于方法执行的顺序
点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
点击后一直不滑动:onDown->onShowPress->onLongPress
3.增加手势(放弃,不讲)
本文详细介绍了在Android中如何使用GestureDetector进行手势检测,包括创建GestureDetector、实现OnGestureListener接口以及重写Activity的onTouchEvent方法。文章还解释了各种手势事件的触发条件和执行顺序。
20万+

被折叠的 条评论
为什么被折叠?



