不知道如何更新fling手势代码

时间:2011-11-20 07:59:28

标签: android touch gesture

我们假设:

我有activity1,activity2,activity3。该应用程序将从活动2开始。我想要的是当用户将该动作手势设置为右侧时,显示活动3,何时显示左侧活动1等等。

我有来自网络的代码,但我没有实现它。大部分是因为不完整,而且我从未使用过滤器和所有那些东西/

以下是代码:

public class SelectFilterActivity extends Activity implements OnClickListener
{

    private static final int SWIPE_MIN_DISTANCE = 120;
    private static final int SWIPE_MAX_OFF_PATH = 250;
    private static final int SWIPE_THRESHOLD_VELOCITY = 200;
    private GestureDetector gestureDetector;
    View.OnTouchListener gestureListener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /* ... */

        // Gesture detection
        gestureDetector = new GestureDetector(new MyGestureDetector());
        gestureListener = new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                return gestureDetector.onTouchEvent(event);
            }
        };

    }

    class MyGestureDetector extends SimpleOnGestureListener {
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            try {
                if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                    return false;
                // right to left swipe
                if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    Toast.makeText(SelectFilterActivity.this, "Left Swipe", Toast.LENGTH_SHORT).show();
                }  else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                    Toast.makeText(SelectFilterActivity.this, "Right Swipe", Toast.LENGTH_SHORT).show();
                }
            } catch (Exception e) {
                // nothing
            }
            return false;
        }

    }

将您的手势监听器附加到您添加到主布局的所有视图中;

//为添加到网格的每个视图执行此操作

imageView.setOnClickListener(SelectFilterActivity.this); 
imageView.setOnTouchListener(gestureListener);

当你的被覆盖的方法被击中时,请注意观察,包括活动的onClick(View v)和手势监听器的onFling。

public void onClick(View v) {
        Filter f = (Filter) v.getTag();
        FilterFullscreenActivity.show(this, input, f);
}

所以再一次,我的布局非常简单,我如何实现我上面告诉你的3个活动的代码?手势课程在所有活动中进行,还是只进行1次?我需要添加什么才能使滑动手势有效?请帮帮我......

0 个答案:

没有答案