Лот ie Android - Как играть с позиции на позицию и повторять по диапазону? - PullRequest
1 голос
/ 09 января 2020

Я нашел это Lott ie Кнопка Play / Pause , но я не знаю, как показать состояние воспроизведения, когда мой аудиоплеер приостановлен, показать состояние Pause и повторить с анимацией эквалайзера в нем (см. лотот ie превью), когда игрок играет. Я прочитал документ, но нет примера для этого случая. У меня нет никаких знаний о After Effect, чтобы контролировать анимацию.

1 Ответ

2 голосов
/ 09 января 2020

Согласно анимации Лотта 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, после того как анимация закончится, она остановится на изображении воспроизведения.

И это все код для достижения чего-то подобного play_pause_animation

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;
            }
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...