Android手势从右到左

时间:2016-03-21 15:48:25

标签: java android gesture motion

我需要从右到左捕捉手势动作,反之亦然(滑动) 为什么不起作用?

public boolean onTouchEvent(MotionEvent event)
    {

        float x = event.getX();
        float y = event.getY();
        int action = event.getAction();
        int edgeFlags = event.getEdgeFlags();


        switch (edgeFlags)

        {
            case MotionEvent.EDGE_LEFT:
            sex=3;   break;


            case MotionEvent.EDGE_RIGHT:
            sex=1;
                break;

            case MotionEvent.EDGE_TOP:
                break;

            case MotionEvent.EDGE_BOTTOM:
                break;

            default:

                break;
        }

return true;
}

它不适合我 - > How to detect the swipe left or Right in Android?

2 个答案:

答案 0 :(得分:0)

尝试这种方法:

公共抽象类CustomGestureListener扩展GestureDetector.SimpleOnGestureListener实现Loggable {

private final View mView;

public CustomGestureListener(View view){
    mView = view;
}

@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
    mView.onTouchEvent(e);
    return super.onSingleTapConfirmed(e);
}

@Override
public boolean onSingleTapUp(MotionEvent e) {
    onTouch();
    return false;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
    if (e1.getX() < e2.getX()) {
        return onSwipeRight();
    }

    if (e1.getX() > e2.getX()) {
        return onSwipeLeft();
    }

    return onTouch();
}

public abstract boolean onSwipeRight();
public abstract boolean onSwipeLeft();
public abstract boolean onTouch();

}

查看this文章了解完整的源代码示例。

答案 1 :(得分:0)

因为只有当用户将拇指一直从屏幕边缘移开时才会返回边缘标记,这很少见。你需要转储这种方法。而是捕捉他们设置手指的点,保存位置和时间。当你得到匹配的事件时,比较位置和时间,并确保它是一个大多数水平移动,并在足够快的时间框架内。那将是一次轻扫。