结合滑动手势

时间:2014-10-14 04:09:24

标签: android swipe gesture

我正在构建一个需要一系列滑动的应用。例如,先向左滑动,然后向右滑动,然后向上滑动。如果此组合正确,则将用户发送到新活动。我目前正在使用这个例子 http://androidexample.com/Swipe_screen_left__right__top_bottom/index.php?view=article_discription&aid=95&aaid=118

尝试了这段代码,但似乎无法使序列正确

public void onSwipe(int direction) {
    int action = direction;

    if (action == SimpleGestureFilter.SWIPE_LEFT) {

        if (action == SimpleGestureFilter.SWIPE_RIGHT) {

            if (action == SimpleGestureFilter.SWIPE_UP) {
                //sent to new activity
                newActivity();

            }

        }
    }
}

2 个答案:

答案 0 :(得分:0)

删除那些嵌套的if,因为当您在right之后滑动left时,它会在SimpleGestureFilter.SWIPE_RIGHT方法中搜索不存在的onSwipe尝试使用{{1}这个值。

编辑:代码(只是让你知道它是如何工作的)

boolean

答案 1 :(得分:0)

Aviverma的回答是在正确的轨道上,但是如果你向右滑动它也会起作用。如果你想要一个明确定义的序列,你应该使用一个数组来跟踪已完成的滑动以及模式中所需的下一次滑动。

int index = 0;
int[] pattern = new int[] { SimpleGestureFilter.SWIPE_LEFT, 
                            SimpleGestureFilter.SWIPE_RIGHT, 
                            SimpleGestureFilter.SWIPE_UP };

public void onSwipe(int direction) {

    if (pattern[index] == direction) {
        // It's a match! Go onto the next one
        index++;
    } else {
        // Bad swipe, reset the user's swipe progress
        index = 0;
    }

    if (index == pattern.length) {
        // Reached the end of the pattern! We can perform the action now.
        // Reset index in case we need this again later
        index = 0;
        newActivity();
    }
}