Android动画无限旋转,不暂停
Posted
技术标签:
【中文标题】Android动画无限旋转,不暂停【英文标题】:Android animation rotate infinite, without pausing 【发布时间】:2022-01-21 18:39:28 【问题描述】:我可以无限旋转我的图像。但我的问题是图像在达到 360º 时会很快暂停,然后再次开始旋转。即使我应用了“linear_interpolator”,它也会发生同样的情况。 我想要做的是图像在下一轮开始时根本不会暂停。所以它必须在任意角度以相同的速度无限旋转。
这是我的 - 代码。谢谢
<?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)
感谢您的帮助! :)
【问题讨论】:
【参考方案1】:将 animation.setRepeatCount(Animation.INFINITE)
添加到调用动画的 java 类中。
这里给出了我的最终代码:
Animation animation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.loop_rotate);
animation.setInterpolator(new LinearInterpolator());
animation.setRepeatCount(Animation.INFINITE);
animation.setDuration(1400);
youractivity.startAnimation(animation);
【讨论】:
非常感谢您分享您的代码!我把它应用在我的身上,它终于起作用了!这真的让我很开心!谢谢 乐于助人 ☺️ 那么,再次以编程方式设置属性?? @DrHowdyDoo 是的,它有效,我也用问题中给出的代码尝试了它 @Sayooj 我刚刚做了!【参考方案2】:这是由于动画完成其持续时间后的小延迟(在您的情况下为 1400 毫秒)。您可以消除此延迟以获得流畅的动画效果。
删除 repeatMode 属性并添加此行:
android:startOffset="0" //Delay in milliseconds before the animation runs
动画会很流畅,没有任何延迟
【讨论】:
这个解决方案对我不起作用,但我现在已经解决了。非常感谢! @Lucy 那么是什么导致了问题?? 不清楚....我在我的 XML 上应用了 android:startOffset="0" 和 linearInterpolator ,然后在这里发布问题,但没有成功。当我在代码文件上写 linearInterpolator 时,我终于可以做到了。 奇怪,我不需要以编程方式设置任何属性,我的只需 xml 代码就可以正常工作。以上是关于Android动画无限旋转,不暂停的主要内容,如果未能解决你的问题,请参考以下文章