gpt4 book ai didi

android - 如何使用顺序添加的动画重复 AnimationSet

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:46 27 4
gpt4 key购买 nike

我正在尝试在我的 Activity 中制作动画,以无限次重复。我已经在具有 repeatCountrepeatMode 属性的 XML 文件中尝试过它,但它不起作用。问题在于 myanimation.xml 文件由一组不同的动画构成。

我的那个动画的 XML 文件

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/bounce_interpolator"
>



<translate


android:startOffset="1000"
android:fillAfter="true"
android:fromXDelta="10"
android:fromYDelta="10"
android:toXDelta="50"
android:toYDelta="-200"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"

/>



<translate

android:fillAfter="true"
android:startOffset="2000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="100"
android:toYDelta="270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator" />

<translate

android:fillAfter="true"
android:startOffset="3000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="130"
android:toYDelta="-270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>

<translate

android:fillAfter="true"
android:startOffset="4000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="140"
android:toYDelta="270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>

<translate

android:fillAfter="true"
android:startOffset="5000"
android:fromYDelta="10"
android:fromXDelta="10"
android:toXDelta="90"
android:toYDelta="-270"
android:duration="1800"
android:interpolator="@android:anim/bounce_interpolator"
/>

onCreate() 中,我将动画绑定(bind)到 ImageView 对象。

    ImageView ball = (ImageView) findViewById(R.id.animationBall);
final Animation myAnimation = AnimationUtils.loadAnimation(this, R.anim.ball_animation);
ball.startAnimation(myAnimation);

动画效果很好,唯一的问题是它不想自己重复,即使我设置了 setRepeatMode()setRepeatCount() 方法也是如此。

最佳答案

就其值(value)而言,setRepeatMode()setRepeatCount() 必须在 Animation 对象上设置,而不是在 AnimationSet 对象。这可能是您犯的一个错误。

因此,要么在 Animation 对象上调用这些方法,要么将这些属性添加到 translate 模式的 XML 中。

另一种方法是设置一个无限循环的动画如下:

mAnimationSet.addListener(new AnimatorListenerAdapter() {

@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mAnimationSet.start();
}

});
mAnimationSet.start();

关于android - 如何使用顺序添加的动画重复 AnimationSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30732557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com