Остановите AnimatedVectorDrawable анимацию после воспроизведения - PullRequest
0 голосов
/ 27 октября 2018

У меня есть 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();

Однако мне не удалось успешно вернуть его в исходное состояние, чтобы я мог воспроизвести его снова. Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Вы можете сделать так:

    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();
0 голосов
/ 27 октября 2018

Для получения начального состояния отрисовки используйте animatedVectorDrawable.seekTo(0) и вы можете позвонить animatedVectorDrawable.stop()

...