How to increase the rotation speed in android?

2020-02-17 09:05发布

问题:

I have an image drawable. i rotating the image like a progress bar.

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="360" android:drawable="@drawable/spinner_white_48" />

i want to increase the rotation speed? for that, What attribute i have to use?

回答1:

Set the duration and repeatCount that you want the animation to run.



回答2:

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-->


回答3:

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.



回答4:

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-->


回答5:

android:duration="required value in ms"