I have an image drawable. i rotating the image like a progress bar.
android:duration="required value in ms"
Setting duration and/or repeat count did not help me with an indeterminate ProgressBar animation. I had to increase the toDegrees to have it make additional loops:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_indeterminate_progress"
android:duration="1"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="1080" /> <!--1080 is 3 loops instead of 1 in same amt of time-->
add in code to progress.xml
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="1080" /> <!--1080 is 3 loops instead of 1 in same amt of time-->
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%"
android:pivotY="50%"
android:fromDegrees="0"
android:toDegrees="1440">
<shape
android:shape="ring"
android:innerRadiusRatio="3"
android:thicknessRatio="8"
android:useLevel="false">
<size
android:width="76dip"
android:height="76dip" />
<gradient
android:type="sweep"
android:useLevel="false"
android:startColor="#FF0000"
android:endColor="#00ffffff"
android:angle="0"/>
</shape>
</rotate>
Set the duration and repeatCount that you want the animation to run.
According to this link:
The rotation speed of the indeterminate progress bar is fixed at one revolution every 4 seconds, changing the duration attribute in the drawable XML has no effect. If you prefer to speed it up, you can change the toDegrees attribute to multiples of 360:
- 720 makes one turn in 2 seconds
- 1080 makes one turn in 1.33 seconds
- 1440 makes one turn in 1 second
In addition, you can just use indeterminateDuration for the ProgressBar.