Java 反方向

Java 反方向,java,android,gridview,touch,Java,Android,Gridview,Touch,我有一个GirdView和一个onTouchListener,我想知道当有人用手指在屏幕上滑动时的方向,我可以很容易地左右移动,但我也想上下移动 但我的问题是 float currentX; float currentY; @Override public boolean onTouch(View v, MotionEvent event) { float x = event.getX();

我有一个
GirdView
和一个
onTouchListener
,我想知道当有人用手指在屏幕上滑动时的方向,我可以很容易地左右移动,但我也想上下移动

但我的问题是

float currentX;
        float currentY;

        @Override
        public boolean onTouch(View v, MotionEvent event) {
                float x = event.getX();
                float y = event.getY();

                switch(event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    Log.d("Showpatch", "Down Triggered " + x + ", " + y);
                    currentX = x;
                    currentY = y;
                    break;

                case MotionEvent.ACTION_UP:
                    Log.d("Showpatch", "Up Triggered" + x + ", " + y);

                    Log.d("Showpatch", "Testing Left... " + x + ", " + y);
                    if (currentX > x) {
                        Log.d("Showpatch", "Moved Left");
                        return false;
                    }

                    Log.d("Showpatch", "Testing Right... " + x + ", " + y);
                    if (currentX < x) {
                        Log.d("Showpatch", "Moved Right");
                        return false;
                    }

                    Log.d("Showpatch", "Testing Down... " + x + ", " + y);
                    if (currentY < y) {
                        Log.d("Showpatch", "Moved Down");
                        return false;
                    }

                    Log.d("Showpatch", "Testing Up... " + x + ", " + y);
                    if (currentY < y) {
                        Log.d("Showpatch", "Moved Up");
                        return false;
                    }

                    break;
                }


            return false;
        }
浮点电流x;
浮动电流;
@凌驾
公共布尔onTouch(视图v,运动事件){
float x=event.getX();
float y=event.getY();
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
Log.d(“Showpatch”,“向下触发”+x+,“+y”);
电流x=x;
电流y=y;
打破
case MotionEvent.ACTION\u UP:
Log.d(“Showpatch”、“向上触发”+x+、“+y”);
Log.d(“Showpatch”,“测试左…”+x+,“+y”);
如果(当前x>x){
Log.d(“Showpatch”,“左移”);
返回false;
}
Log.d(“Showpatch”,“测试权…”+x+,“+y”);
如果(电流x
正如我所说,它可以左右移动,没有任何问题,但它从来没有检测到向上或向下,因为它在到达向上/向下语句之前触发左/右,除非你将手指准确地向上和向下移动,否则它不起作用

有没有一种方法可以让用户在任何地方上下滑动


非常感谢您的帮助。

我相信手势听者可以帮助您,它是在1.6中引入的

干杯 托拜厄斯