首页 > 解决方案 > 播放后停止 AnimatedVectorDrawable 动画

问题描述

我有一个 AnimatedVectorDrawable,它在单击时从播放动画到暂停状态。

...
 animatedVectorDrawable.registerAnimationCallback(new Animatable2.AnimationCallback() {
                    @Override
                    public void onAnimationEnd(Drawable drawable) {
                      //Reset the image back to its original state

                      //What I've tried so far
                      /* img.setImageResource(R.drawable.original_state)
                        animatedVectorDrawable.stop()
                        animatedVectorDrawable.reset() */
                    }
                });
 animatedVectorDrawable.start();

但是,我无法成功地将其恢复到原始状态,以便我可以再次播放。我该如何解决这个问题?

标签: androidanimationvectorandroid-vectordrawableanimatedvectordrawable

解决方案


你可以这样做:

    final Handler mainHandler = new Handler(Looper.getMainLooper());
    animatedVector.registerAnimationCallback(new Animatable2.AnimationCallback() {
        @Override
        public void onAnimationEnd(final Drawable drawable) {
            mainHandler.post(new Runnable() {
                @Override
                public void run() {
                    animatedVectorDrawable.start();
                }
            });
        }
    });
    animatedVectorDrawable.start();

推荐阅读