如何以恒定速度连续旋转视图?

时间:2018-01-12 07:18:42

标签: android android-animation

我正在尝试以恒定速度连续旋转视图。 我用了,

   <?xml version="1.0" encoding="utf-8"?>
   <set xmlns:android="http://schemas.android.com/apk/res/android">
   <rotate

    android:fromDegrees="0"
    android:toDegrees="1800"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:duration="1000"
     />

  </set>

但是在一次旋转之后它暂停一段时间,然后开始另一次旋转。有没有办法消除暂停?

3 个答案:

答案 0 :(得分:2)

继续使用android:repeatMode =&#34; restart&#34;

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

    <rotate
    android:duration="1700"
    android:interpolator="@android:anim/linear_interpolator"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:repeatMode="restart"
    android:toDegrees="360" />

   </set>

答案 1 :(得分:0)

使用xml - 使用android:toDegrees="360"代替1800

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

<rotate
    android:duration="500"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:startOffset="0"
    android:toDegrees="360" />
</set>

使用代码旋转图像

ImageView img_rotate = (ImageView)findViewById(R.id.img_rotate);
rotation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.rotate);
rotation.setFillAfter(true);
img_rotate.startAnimation(rotation);

答案 2 :(得分:0)

将其添加到RotationAnimation中,您将获得所需的内容:-

rotate.setInterpolator(this, android.R.anim.linear_interpolator);

或将其添加到动画xml中;-

android:interpolator="@android:anim/linear_interpolator"