Android Studio Android动画旋转无限,没有停顿

j2qf4p5b  于 2023-08-07  发布在  Android
关注(0)|答案(3)|浏览(137)

我可以无限旋转我的图像。但我的问题是,图像在达到360º时会短暂停顿,然后再次开始旋转。即使我应用了“linear_interpolator”,也会发生同样的情况。我想做的是图像在开始下一轮时根本不会暂停。所以它必须以相同的速度无限旋转。
这是我的- code。谢啦,谢啦

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="1400"
    android:pivotX="50%"
    android:pivotY="50%"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:repeatMode="restart"
    android:repeatCount="infinite" />
</set>

字符串
我如何在代码中调用它

rotate= AnimationUtils.loadAnimation(context, R.anim.loop_rotate)
    binding.imgSecondLayout.startAnimation(rotate)


谢谢帮忙!:)

tjrkku2a

tjrkku2a1#

animation.setRepeatCount(Animation.INFINITE)添加到调用animation的java类。
我的最终代码如下:

Animation animation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.loop_rotate);
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setDuration(1400);
youractivity.startAnimation(animation);

字符串

idfiyjo8

idfiyjo82#

这是由于动画完成其持续时间后的小延迟(在我们的情况下为1400 ms)。可以删除此延迟以实现平滑动画。
删除repeatMode属性并添加以下行:

android:startOffset="0"  //Delay in milliseconds before the animation runs

字符串
动画将是平滑的,没有任何延迟

crcmnpdw

crcmnpdw3#

你的问题问了大约1年,现在我面临着同样的问题,但检查的答案不为我工作
相反,我将这一行添加到xml中的动画集标记中:

android:shareInterpolator="false"

字符串
我的xml动画就像下面这样:

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

相关问题