Gesture(手势)浅析

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.增加手势(放弃,不讲)

原文地址:https://www.cnblogs.com/rookiechen/p/5288184.html