5 votes

Comment fonctionne la détection de la position du toucher sur l'écran d'Android ?

Nous pouvons obtenir les coordonnées de la position du toucher sur l'écran à l'aide des fonctions suivantes :

public boolean onTouchEvent(MotionEvent event){
    float x_forOnTouch = event.getX();
    float y_forOnTouch = event.getY();  

Qu'est-ce qui est exactement renvoyé par le getX() y getY() fonctions ? Renvoie-t-il des valeurs de pixels ? Lorsqu'un doigt touche une position de l'écran, il touche probablement un certain nombre de pixels. Que renvoie donc exactement la fonction ?

Supposons à nouveau que dans la zone que je touche avec mon doigt, il y a plusieurs pixels sur l'écran, comme indiqué ci-dessous :
enter image description here

Supposons que je doive cliquer et faire glisser le point situé au pixel 1, mais que la zone touchée par mon doigt couvre les pixels 1 et 2. Comment puis-je détecter avec précision le pixel sur lequel j'ai cliqué, afin de pouvoir cliquer et faire glisser le point sur le pixel 1 ou 2 lorsque j'en ai besoin ?

5voto

Diego C Nascimento Points 1303

Cela peut vous être utile : http://developer.Android.com/reference/Android/view/MotionEvent.html

I supposer les valeurs correspondent au centre du blob ou à la zone du toucher. N'oubliez pas qu'il peut s'agir d'un outil tel qu'une souris ou un stylet, de sorte que la zone sera plus précise. Il existe des méthodes et des constantes pour la zone supposée du doigt qui touche.

Le lien contient tellement de méthodes sur cette question, que je ne vais pas copier et coller, car c'est assez documenté, donc je pense que vous devez le lire.

Certains d'entre eux : getPressure() getSize() getPointerCount() getXPrecision()

En ce qui concerne la valeur renvoyée, la section Types d'appareils fournira de nombreuses informations.

Quelques exemples pertinents :

L'interprétation du contenu d'un MotionEvent varie de manière significative selon de la classe source de l'appareil.

Sur les dispositifs de pointage avec la classe de source SOURCE_CLASS_POINTER tels que écrans tactiles les coordonnées du pointeur spécifient les positions absolues telles que les coordonnées X/Y de la vue . Chaque geste complet est représenté par une séquence d'événements de mouvement avec des actions qui décrivent les transitions d'état et les mouvements du pointeur.

Sur dispositifs de joystick avec la classe source SOURCE_CLASS_JOYSTICK, les coordonnées du pointeur spécifient la position absolue des axes du joystick. Les valeurs des axes du joystick sont normalisées à une plage de -1,0 à 1,0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X