I have an imageview layer and I want to rotate it on touch and stop It when I touch again, how can I do?
            Asked
            
        
        
            Active
            
        
            Viewed 892 times
        
    2 Answers
1
            Create Animation rotate.xml in anim dir
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <rotate
        android:duration="2500"
        android:interpolator="@android:anim/linear_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="infinite"
        android:repeatMode="restart"
        android:toDegrees="360" />
</set>
Now in you class file load animation
Animation animation = AnimationUtils.loadAnimation(getContext(),R.anim.rotate);
And on click of your image start animation
your_image.startAnimation(animation);
 
    
    
        Kishan Vaghela
        
- 7,678
- 5
- 42
- 67
- 
                    thanks and last question How Can I handle if I touch again the image I need to stop animation ? – kingmaker Jan 20 '16 at 09:47
- 
                    Take one boolean isAnimationRunning and set it to true when animation started and vice versa. When you click image only start animation if not running. – Kishan Vaghela Jan 20 '16 at 10:12
0
            
            
        You can try to set an animation programmatically like this:
    RotateAnimation rotate = new RotateAnimation(0, 360,
    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
    0.5f);
   rotate.setDuration(4000);
   rotate.setRepeatCount(Animation.INFINITE);
   yourView.setAnimation(rotate);
Hope it helps.
 
    
    
        Kristo
        
- 1,339
- 12
- 22
 
    