Согласно анимации Лотта ie, в ней есть кадры, поэтому, манипулируя этими кадрами, вы можете получить то, что вы хотите, пример
AnimationView play_pause = findViewById(R.id.play_pause);
play_pause.cancelAnimation();
play_pause.setMinFrame(90);
play_pause.setMaxFrame(175);
Этот код будет повторять вашу анимацию в ярости 90-175. Я тестировал ее на вас кнопка Lott ie Play / Pause, поэтому при нажатии, чтобы остановить, вы должны изменить MaxFrame на 210 и установить l oop на 1, после того как анимация закончится, она остановится на изображении воспроизведения.
И это все код для достижения чего-то подобного
Boolean isPlaying = false;
play_pause = findViewById(R.id.play_pause);
play_pause.pauseAnimation();
play_pause.setMinFrame(60);
play_pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isPlaying){
play_pause.removeAllAnimatorListeners();
play_pause.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (valueAnimator.getAnimatedFraction() == 1){
play_pause.setMinFrame(60);
play_pause.pauseAnimation();
}
}
});
play_pause.setMinFrame(175);
play_pause.setMaxFrame(210);
isPlaying = false;
} else {
play_pause.setMaxFrame(175);
play_pause.removeAllUpdateListeners();
play_pause.addAnimatorListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
play_pause.setMinFrame(90);
}
});
play_pause.resumeAnimation();
isPlaying = true;
}
}
});