J'ai besoin d'obtenir la position de début tactile (X, Y), la position de déplacement tactile et la position finale tactile de l'écran sous Android.
92
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
Les trois cas sont pour que vous puissiez réagir à différents types d'événements, dans cet exemple en appuyant ou en faisant glisser ou en soulevant à nouveau le doigt.
Réponse supplémentaire
Étant donné un
OnTouchListener
mis sur une vue:
Cela vous donne les coordonnées de l'événement tactile par rapport à la vue à laquelle l'écouteur tactile lui est attribué. Le coin supérieur gauche de la vue est
(0, 0)
. Si vous déplacez votre doigt au-dessus de la vue, cey
sera négatif. Si vous déplacez votre doigt à gauche de la vue, cex
sera négatif.Si vous voulez les coordonnées relatives au coin supérieur gauche de l'écran de l'appareil, utilisez les valeurs brutes.
en relation
la source
return false
sinon cela consommera le toucher.getRawX()
etgetRawY()
doit renvoyer les coordonnées absolues de la position tactile sur toute vue à laquelle l'auditeur est ajouté. Mais vous avez raison, s'il y a une autre vue au-dessus qui revienttrue
, alors aucune vue inférieure ne sera notifiée des événements tactiles.getX()
etgetY()
fonctionne très bien (pas besoin degetRawX/Y()
).onInterceptTouchEvent
puis revenirfalse
pour que l'événement soit traité normalement.la source
Voici le style Koltin, je l'utilise dans mon projet et cela fonctionne très bien:
la source