Je veux calculer le delta des positions tactiles sur l'écran. Pour cela, je suis en utilisant ce code:Android: moyen le plus simple pour calculer le delta de la position tactile?
public boolean onTouchEvent(MotionEvent event) {
touchX = (int) event.getX();
touchY = (int) event.getY();
deltaX = touchX - oldX;
deltaY = touchY - oldY;
oldX = touchX;
oldY = touchY;
return super.onTouchEvent(event);
}
Maintenant, quand je me déplace le doigt sur l'écran pendant un certain temps, je reçois le delta correct. Mais le problème se produit quand j'arrête mon doigt, mais ne le soulève pas. A ce moment, je viens d'obtenir le delta non nul de la dernière image. C'est parce que onTouchEvent
n'est pas appelé lorsque le doigt est à l'écran mais statique. Je devrais obtenir zéro delta quand le doigt est statique.
Quelle est la solution à ce problème?
J'utilisais la même méthode auparavant sauf la ligne 'mHandler.removeCallbacksAndMessages (null);'. Mais c'était un peu laggy. L'utilisation de votre solution a tué le décalage. Que fait cette ligne? –
Cette ligne supprime toutes les tâches en attente. C'est nécessaire car si un nouvel événement tactile se produit, toutes les attentes précédentes n'ont aucun sens. –