Как обнаружить, что закончить анимацию Лотти и показать тост - PullRequest
0 голосов
/ 23 октября 2018

У меня есть этот код, который показывает анимацию, я хочу знать, как показать тост, когда анимация закончена

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash_screen);

    lottieAnimationLogo = findViewById(R.id.lottieAnimationLogo);

    startCheckAnimationLogo();

}

private void startCheckAnimationLogo(){
    ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f).setDuration(3000);
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener(){
        @Override
        public void onAnimationUpdate(ValueAnimator animation){
            lottieAnimationLogo.setProgress((Float)animation.getAnimatedValue());
        }
    });
    if(lottieAnimationLogo.getProgress() == 0f){
        animator.start();
    }else{
        lottieAnimationLogo.setProgress(0f);
    }
}

1 Ответ

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

Вы можете попробовать установить AnimatorListener:

animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            // show Toast
        }
    });

Или добавить прослушиватель для всех событий жизненного цикла:

animator.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {

        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });

РЕДАКТИРОВАТЬ:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash_screen);

    lottieAnimationLogo = findViewById(R.id.lottieAnimationLogo);

    startCheckAnimationLogo();

}

private void startCheckAnimationLogo(){
    ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f).setDuration(3000);
    animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener(){
        @Override
        public void onAnimationUpdate(ValueAnimator animation){
 lottieAnimationLogo.setProgress((Float)animation.getAnimatedValue());
        }
    });
    animator.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            Toast.makeText(this, "Text", Toast.LENGTH_SHORT).show();
        }
    });
    if(lottieAnimationLogo.getProgress() == 0f){
        animator.start();
    }else{
        lottieAnimationLogo.setProgress(0f);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...