J'essaie de configurer un GridView de boutons qui répond à onTouch. Par exemple, si je fais glisser mon doigt sur l'écran horizontalement, verticalement ou en diagonale, je veux que les boutons qui ont été touchés soient sélectionnés. J'ai essayé de définir OnTouchListener pour les boutons, mais cela n'a pas fonctionné, seul le premier bouton de l'événement drag a reçu les événements onTouch.GridView onTouch
Ensuite, j'ai essayé de créer un OnTouchListener pour le GridView et ensuite en utilisant les coordonnées X, Y pour déterminer les boutons qui ont été touchés. Cela ne semble pas fonctionner non plus puisque les événements MOTION_DOWN ne sont passés à onTouch() de GridView que si je commence le glisser sur le bord même de GridView. En fait, si je fais glisser mon doigt horizontalement sur la grille, les événements onTouch ne sont pas déclenchés à moins que je ne commence le glisser sur le bord de la GridView. Est-ce que quelqu'un sait d'une meilleure façon de le faire?
Merci d'avance.
gridview.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(@SuppressWarnings("unused") View view, MotionEvent event)
{
float X = event.getX();
float Y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
System.out.println("Down: " + X + "," + Y);
break;
case MotionEvent.ACTION_MOVE:
System.out.println("Move: " + X + "," + Y);
break;
case MotionEvent.ACTION_UP:
System.out.println("Up: " + X + "," + Y);
break;
}
return true;
}
}