Android: comment détecter l'emplacement tactile sur ImageView si la vue de l'image est mise à l'échelle par la matrice?
J'ai mis OnTouchListener
d'une ImageView et de mettre en œuvre onTouch
méthode, mais si l'image est redimensionnée à l'aide de la matrice, comment dois-je calculer l'emplacement de la touche?
Ou le mouvement prend automatiquement en compte lors du retour de getX()
et getY()
?
source d'informationauteur hzxu
Vous devez vous connecter pour publier un commentaire.
getX
etgetY
sera de retour au toucher emplacement dans la ImageView du système de coordonnées. Si vous êtes à la recherche pour le point à l'intérieur de l'image du système de coordonnées, vous pouvez utiliser la matrice inverse de la matrice utilisée par l'ImageView. J'ai fait quelque chose comme ce qui suit:Zorgbargle réponse est juste, mais il est une autre considération lors de votre chargement d'images à partir de dossier de ressources et que la densité de l'appareil.
Android échelle des images de la base sur le dispositif de densité, de sorte que vous si vous n'avez que l'image dans mdpi dossiervous devez également diviser les points par la densité de trouver le point réel sur l'image:
Essayez d'utiliser getRawX() et getRawY(). Notez que ce n'est pas ajusté pour la taille de la vue, de sorte que vous peut-être compensés si l'application n'est pas en plein écran.