Как выполнить одну анимацию затем другую - PullRequest
0 голосов
/ 19 июня 2019

Я не хочу, чтобы мои два животных запускались одновременно и одно за другим. У вас есть идеи?

Моя анимация:

fade1

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromAlpha="1.0"
       android:toAlpha="0.0"
       android:duration="1500"
/>

fade2

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
       android:fromAlpha="1.0"
       android:toAlpha="0.0"
       android:duration="3000"
/>

Моя идея не работает

 private void animations_sequencing(){
        //The first anim start
        try{
            text.setText("Hello");
            text.startAnimation(AnimationUtils.loadAnimation(Main2Activity.this, R.anim.fade1));
            Thread.sleep(1500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //The first anim is end, the seconde anim start
        try{
            text.setText("World");
            text.startAnimation(AnimationUtils.loadAnimation(Main2Activity.this, R.anim.fade2));
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Вот как это сделать:

Animation anim2;

private void anim(){

    Animation anim = AnimationUtils.loadAnimation(Main2Activity.this, R.anim.fade);
        anim2 = AnimationUtils.loadAnimation(Main2Activity.this, R.anim.fade2);

        anim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {

        }
        @Override
        public void onAnimationEnd(Animation animation) {
            text.setText("World");
            text.startAnimation(anim2);
        }
        @Override
        public void onAnimationRepeat(Animation animation) {
        }

    });
        text.startAnimation(anim);
    }
}
0 голосов
/ 19 июня 2019

Вы должны реализовать setAnimationListener для захвата по окончании анимации.

text.startAnimation(AnimationUtils.loadAnimation(Main2Activity.this, R.anim.fade1).setAnimationListener(new Animation.AnimationListener() {
                @Override
                public void onAnimationStart(Animation animation) {

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                //start second animation
                }

                @Override
                public void onAnimationRepeat(Animation animation) {

                }
            }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...