J'ai un GirdView
et j'ai un onTouchListener
, je veux obtenir la direction de quand quelqu'un glisse leur doigt sur l'écran, je peux obtenir à droite et à gauche facilement, mais je veux aussi monter et descendre.onTouch Direction
Mais mon problème est ..
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;
}
Comme je l'ai dit se gauche et à droite sans problème, mais il ne détecte jamais ou vers le bas, car il tire la gauche/droite avant qu'il ne soit à la mise/down instructions, sauf si vous bougez votre doigt exactement de haut en bas, cela ne fonctionne pas ...
Y at-il un moyen d'aller où un utilisateur balaye vers le haut ou vers le bas?
Toute aide est très appréciée, merci.