You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 自定义XML补间动画设置无限重复后仍仅运行一次如何解决

问题根因

  • Android 中的 AnimationSet 不会将你设置的重复计数、重复模式自动同步到内部包含的子动画上,且 AnimationSet 本身的 repeatCount、repeatMode 属性官方明确标注为无效,仅对单个子动画生效。
  • 你当前只给 <scale> 标签配置了无限重复属性,<alpha> 标签没有配置重复属性,第一次动画跑完后 alpha 值会固定为 0,后续即便 scale 动画在重复执行,视图也不可见,所以看起来动画只运行了一次。

解决方案

方案1:给所有子动画统一配置重复属性

直接修改 animation.xml,给 alpha 标签也加上和 scale 一致的重复配置即可,修改后的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromXScale="0"
        android:toXScale="1"
        android:fromYScale="0"
        android:toYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatMode="restart"
        android:repeatCount="infinite"/>
    <alpha android:fromAlpha="1"
        android:toAlpha="0"
        android:repeatMode="restart"
        android:repeatCount="infinite"/>
</set>

Java 代码无需额外修改,原有逻辑即可正常运行。

方案2:通过动画监听实现整体重复

如果需要整个动画集作为整体统一控制重复,可以给动画设置监听,在动画结束时重新启动:
修改后的 MainActivity 代码如下:

public class MainActivity extends AppCompatActivity {

    private View view;
    private Animation animation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        view = findViewById(R.id.view);

        animation = AnimationUtils.loadAnimation(this, R.anim.animation);
        animation.setDuration(6000);
        // 给动画加结束监听,结束时重新启动
        animation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {}

            @Override
            public void onAnimationEnd(Animation anim) {
                view.startAnimation(animation);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {}
        });
        view.startAnimation(animation);
    }
}

这个方案不需要修改XML配置,也能实现整体动画的无限重复效果。

内容的提问来源于stack exchange,提问作者user5957595

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:06:01