У меня есть 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;
}
Как я уже сказал, он перемещается влево и вправо без проблем, но он никогда не обнаруживает вверх или вниз, потому что запускает влево / вправо, прежде чем попадает в операторы вверх / вниз, если только вы не двигаете пальцем точно вверх и вниз. не работает ...
Есть ли способ попасть туда, где пользователь проводит вверх или вниз?
Любая помощь очень ценится, спасибо.