Peut-on utiliser une échelle geste détecteur de zoom par pincement dans Android?
Peut-on utiliser une échelle geste détecteur de zoom par pincement dans Android?
Vous devez vous connecter pour publier un commentaire.
Peut-on utiliser une échelle geste détecteur de zoom par pincement dans Android?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser cette
à appeler dans votre
activity.setContentView(new MyImageView(this));
ScaleGestureDetector.getFocusX,Y()
Vous pouvez créer une classe réutilisable qui implémente
OnTouchListener
pour accomplir cette tâche.Puis l'affecter en tant que votre
View
'sOnTouchListener
comme si.Si vous souhaitez ajouter un défilement de l'aptitude à la
View
vous aurez besoin de mettre en œuvreonScroll
de laOnGestureListener
interface. Vous pouvez ajouter cette substitution à laMyScaleGestures
classe pour accomplir cette tâche.Le résultat final de tous les ci-dessus vous donnera de la classe comme ceci:
ImageView
. Malheureusement, la constuctor et le nom de la classe ne correspondent pas, le booléen inScale est manquant et ne n'ont de sens que si lesonScroll()
méthode est présent. Bur plus important que tout ce qui précède, leonScroll()
méthode ne permet pas de remplacer quoi que ce soit (si le dérivé d'un autre auditeur?), et donc ne fonctionne pas. Ou peut-être que je suis absent quelque chose de grand. Cela peut-il être amélioré?inScale
parthis.gestureScale.isInProgress()
. Est-ce vrai ou est-il préférable d'utiliser de maintenir votre propre boolean?GestureDector.OnGestureListener
, j'ai dû fournironLongPress()
,onDown()
,onFling()
,onShowPress()
etonSingleTapUp()
.ScaleGestureDetector
...onDown()
,onFling()
etonSingleTapUp()
je suis de retourtrue
et j'ai un commentaire dans mon code qui dit retourtrue
est a été nécessaire pour ne pas bloquer l'entrée dans ces événements. J'ai attaché la classe de ma réponse, dans le cas où il y a autre chose que j'ai raté.onTouch()
.ScaleGestureDetector est disponible à partir de Android 2.2 alias Froyo, l'API de niveau 8). Voir: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html
Dans la version 2.0/2.1, vous n'avez pas ScaleGestureDetector, mais vous pouvez fournir de zoom par pincement à l'aide de l'ZDNet entrée de blog par Ed Burnette que Pieter888 lié ci-dessus: http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-6-implementing-the-pinch-zoom-gesture/1847
en fait il y a une bibliothèque qui utilise cette classe pour le zoom des images.
il est appelé "TouchImageView"
oui, nous pouvons ici est l'exemple de code où onPinch() et onZoom() sont des actions à mettre en œuvre sur votre propre
TouchImageView
MainActivity.java