2011-03-06 3 views
4

Je souhaite faire pivoter une image de 360 ​​degrés en continu autour d'un point fixe. Je l'ai vu quelques exemples déjà tels que:Faire pivoter ImageView dans Android autour d'un point fixe à l'aide de RotateAnimation

RotateAnimation anim = new RotateAnimation(0, 360,150,150); 
anim.setInterpolator(new LinearInterpolator()); 
anim.setRepeatCount(Animation.INFINITE); 
anim.setDuration(2000); 
[imageview].startAnimation(anim); 

Cela fait pivoter l'image, mais il le fait sur un chemin d'arc/circulaire. C'est à dire. l'image bouge/tourne dans un mouvement circulaire mais ne reste pas fixe à son emplacement de départ.

Ce que je veux essentiellement, c'est imiter la rotation des bras d'un WindMill.

Des pensées?

Répondre

0

Ok, donc j'ai réussi à travailler parfaitement après quelques ajustements. Comme Macarse a dit, il a impliqué le rembourrage autour de la ImageView.

Pour résoudre ce problème, tout ce que vous devez faire est de mettre votre ImageView dans un RelativeLayout: sa position fixe

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
    > 

    <ImageView 
     android:id="@+id/imageview" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:src="@drawable/image" 
     /> 

</RelativeLayout> 
7

Utilisez ce code

RotateAnimation rotateAnimation1 = new RotateAnimation(0, 360, 
     Animation.RELATIVE_TO_SELF, 0.5f, 
     Animation.RELATIVE_TO_SELF, 0.5f); 
rotateAnimation1.setInterpolator(new LinearInterpolator()); 
rotateAnimation1.setDuration(duration); 
rotateAnimation1.setRepeatCount(0); 
img.startAnimation(rotateAnimation1); 

ce tournera votre image, à savoir autour de lui-même

+0

J'ai besoin de rotation pour gérer de haut en bas comme si je faisais glisser la poignée vers le bas et vers le haut –

+0

akhir kehna kya chahte ho? –

-1

je dirai que définir le point de pivot de imageview .. pour le x = imgView.getWidth()/2, et y = imgView.getHeight()/2

Questions connexes