Animated Vector drawable动画无法正常工作

时间:2018-07-30 16:38:45

标签: java android

我想在无限循环中运行AnimatedVectorDrawable动画。

final AnimatedVectorDrawableCompat avd = AnimatedVectorDrawableCompat.create(this, R.drawable.avd_anim_happy);
    mImageView.setImageDrawable(avd);


    // animation on infinite loop
    avd.registerAnimationCallback(new Animatable2Compat.AnimationCallback() {

        @Override
        public void onAnimationStart(Drawable drawable) {
            super.onAnimationStart(drawable);
            Log.e(TAG, "onAnimationStart() called");
        }

        @Override
        public void onAnimationEnd(Drawable drawable) {
            Log.e(TAG, "onAnimationEnd() called");
            avd.start();
        }
    });

    avd.start();
}

当我使用牛轧糖设备进行测试时,此方法工作正常。但是,当我尝试在 KitKat 设备上运行此程序时,将调用回调,但不会再次启动动画。没有 “已调用onAnimationStart()”日志消息。但是在执行以下操作之后。

        @Override
        public void onAnimationEnd(Drawable drawable) {
            Log.e(TAG, "onAnimationEnd() called");
            if (avd.isRunning()) {
                Log.e(TAG, "avd running!!");
                avd.stop();
            }
            avd.start();
        }

onAnimationEnd()onAnimationStart()一次又一次被调用。但是出于某种原因,动画只播放了一次就停止了。

1 个答案:

答案 0 :(得分:0)

我在旧平台上遇到了同样的问题,事实证明,我通过在结束事件之后发布开始来解决它。

imageView.post(new Runnable() {
                @Override
                public void run() {
                    avd.start();
                }
            });