Как приостановить и возобновить вращение анимации Android? - PullRequest
0 голосов
/ 21 сентября 2019

Я реализовал анимацию поворота изображения на экране аудиопроигрывателя, где при запуске аудио, а не при повороте изображения, и когда пользователь нажимает кнопку остановки анимации с паузой, я использую метод clearAnimation () для остановки анимации, а когда пользователь возобновляет работу, я вызываю startAnimation ()метод, но это выглядит плохо, потому что, когда я очищаю анимацию, степень изображения, например, 90, была другой, и когда я снова запускаю анимацию (), ее начальная точка была 0. Пожалуйста, проверьте это видео, где анимация имеет проблемы во время воспроизведения / паузы аудио Смотреть это видео .

Итак, я нахожу анимацию pause () / resume () для лучшей плавности.Может кто-нибудь помочь мне разобраться с плавностью анимации или рабочим тестом?

1 Ответ

2 голосов
/ 21 сентября 2019

Используйте Animator объект для анимации свойства представления (например, android:rotation):

View imgView = findViewById(R.id.image);
View playPauseBtn = findViewById(R.id.button);

final ObjectAnimator anim = ObjectAnimator.ofFloat(imgView, View.ROTATION, 0f, 90f)
        .setDuration(4000);
anim.setRepeatCount(Animation.INFINITE);
anim.setInterpolator(new LinearInterpolator());
anim.start();

playPauseBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (anim.isPaused()) {
            anim.resume();
        } else {
            anim.pause();
        }
    }
});
...