Android 动画无限旋转,不间断
Android animation rotate infinite, without pausing
我可以无限旋转我的图像。但我的问题是图像在达到 360º 时会立即暂停,然后再次开始旋转。即使我应用“linear_interpolator”,它也会发生同样的情况。
我想要做的是图像在下一轮开始时根本不会暂停。所以它必须在任何角度以相同的速度无限旋转。
Here is my - code. Thanks
<?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>
How I call it on my code
rotate= AnimationUtils.loadAnimation(context, R.anim.loop_rotate)
binding.imgSecondLayout.startAnimation(rotate)
感谢帮助! :)
这是由于动画完成其持续时间后的小延迟(在您的情况下为 1400 毫秒)。您可以删除此延迟以获得流畅的动画效果。
删除 repeatMode 属性并添加此行:
android:startOffset="0" //Delay in milliseconds before the animation runs
动画会很流畅,没有任何延迟
将 animation.setRepeatCount(Animation.INFINITE)
添加到调用动画的 java class 中。
我的最终代码在这里:
Animation animation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.loop_rotate);
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setDuration(1400);
youractivity.startAnimation(animation);
我可以无限旋转我的图像。但我的问题是图像在达到 360º 时会立即暂停,然后再次开始旋转。即使我应用“linear_interpolator”,它也会发生同样的情况。 我想要做的是图像在下一轮开始时根本不会暂停。所以它必须在任何角度以相同的速度无限旋转。
Here is my - code. Thanks
<?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>
How I call it on my code
rotate= AnimationUtils.loadAnimation(context, R.anim.loop_rotate)
binding.imgSecondLayout.startAnimation(rotate)
感谢帮助! :)
这是由于动画完成其持续时间后的小延迟(在您的情况下为 1400 毫秒)。您可以删除此延迟以获得流畅的动画效果。
删除 repeatMode 属性并添加此行:
android:startOffset="0" //Delay in milliseconds before the animation runs
动画会很流畅,没有任何延迟
将 animation.setRepeatCount(Animation.INFINITE)
添加到调用动画的 java class 中。
我的最终代码在这里:
Animation animation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.loop_rotate);
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setDuration(1400);
youractivity.startAnimation(animation);