2010-12-01 6 views
1

Je joue avec le cadre d'animation Android et j'ai trouvé le code suivant exemple de rotation 3D:rotation 3D tout objet en cours de traduction

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Transition3d.html

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/animation/Rotate3dAnimation.html

Il fait à peu près ce que je veux, mais Je veux que l'ImageView tourne pendant qu'il est traduit du point A au point B et qu'il doit tourner le long de son propre centre (qui se déplace) au lieu du centre du conteneur d'écran.

Est-ce que quelqu'un sait comment faire cela?

-Rachel

Répondre

0

Eh bien, c'est assez proche de ce que vous avez posté. Essentiellement, vous multipliez la matrice de rotation par la matrice de traduction. C'est essentiellement ce qui se passe sous les couvertures. Android cache ce détail de vous avec son API:

Matrix matrix = transformation.getMatrix(); 
matrix.rotate(rotateX, rotateY); 
matrix.postTranslate(transX, transY); 

Faire tourner d'abord, puis traduire va faire pivoter l'image autour de son propre axe avant de le traduire.

+0

Voulez-vous dire matrix.setRotate (rotateX, rotateY)? Je pense que c'est pour la rotation 2D tho. Ne devons-nous pas utiliser camera.rotateY pour obtenir un effet de rotation 3D? –

Questions connexes