У меня есть 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();
Однако мне не удалось вернуть его в исходное состояние, чтобы воспроизвести его снова. Как я могу это решить?
Чтобы получить начальное состояние чертежа, используйте animatedVectorDrawable.seekTo(0)
, и вы можете вызвать animatedVectorDrawable.stop()
Вы могли бы сделать так:
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();
ну, это держит его в цикле взад и вперед
@ user8284066 вы можете определить логическую переменную и запускать анимацию только тогда, когда переменная равна true.
.seekTo () не является функцией