首页 > 解决方案 > 控制动画在 android studio 中的持续时间

问题描述

我想控制动画在我的应用程序中运行的秒数,但我发现只有两个选项 - 无限运行或一次性运行,我希望动画运行不止一次但结束 - 即:动画说话,我希望在某个时候,嘴巴会停止移动。

这是我的动画列表 xml:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/combi_animation" android:oneshot="false">
    <item android:drawable="@drawable/combi_logo" android:duration="600" />
    <item android:drawable="@drawable/combi_mouth_closed" android:duration="600" />
</animation-list>

和我的动画代码:

protected void onStart() {
    super.onStart();
    AnimationDrawable rocketAnimation;
    ImageView rocketImage = (ImageView) findViewById(R.id.combi_icon);
    rocketImage.setBackgroundResource(R.drawable.combi_animation);
    rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
    rocketAnimation.start();
}

我想也许会有一个听众,在我决定的一段时间后停止动画。我的意思是,10 秒后动画会停止。但我找不到合适的方法来做到这一点。如何做呢?

标签: javaandroidandroid-studioanimationandroid-animation

解决方案


你可以这样做 :

new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                rocketAnimation.stop();
            }
        },10*1000);

推荐阅读