Récupérer la position x et y d'un clic sur l'écran
Bonjour cher débutant qui cherche cette réponse ...
Grace à Viish et jahbromo, j'ai eu la solution .... et débutatnt moi-même, je suis heureux de te la faire partager.
Ci-dessous, l'implantation très simple du code qui permet de récupérer le y et le y (absolus, depuis le coin haut gauche de l'écran) d'un clic sur l'écran :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public boolean onTouchEvent(MotionEvent event)
{
//---quand on clique sur l'écran ---
if (event.getAction() == 1)
{
xClic = event.getX();
yClic = event.getY();
Toast.makeText(getBaseContext(),"x = " +String.valueOf(xClic) + "," + " y = " +String.valueOf(yClic) ,Toast.LENGTH_SHORT).show();
}
return false;
} |
La méthode est placée dans la classe qui extends l'Activity.
Ici il y a un Toast pour l'exemple (xClic et yClic sont des float déclarés en global) mais chacun y mettra ce qu'il veut.
Plus simple tu meurs, c'est pourtant ce qui permet de faire des choses fort intéressantes ....
Merci encore aux experts du forum ....
Complété le 15/03/10 suite a une remarque de jahbromo qui recommande de ne pas faire :
Code:
1 2
|
if (event.getAction() == 1) |
... mais d'utiliser MotionEvent.ACTION_UP au lieu de sa valeur 1.
Le code devient :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public boolean onTouchEvent(MotionEvent event)
{
//---quand on clique sur l'écran ---
if (event.getAction() == MotionEvent.ACTION_UP)
{
xClic = event.getX();
yClic = event.getY();
Toast.makeText(getBaseContext(),"x = " +String.valueOf(xClic) + "," + " y = " +String.valueOf(yClic) ,Toast.LENGTH_SHORT).show();
}
return false;
} |
C'est effectivement plus clair, même pour un débutant qui, en faisant une recherche sur MotionEvent.ACTION_UP, va tomber sur l'ensemble des constantes de MotionEvent, ce qui va forcément lui donner des idées ....