Как добавить анимацию перед открытием нового занятия? - PullRequest
0 голосов
/ 11 декабря 2018

Я бы хотел добавить анимацию перед открытием нового Android Empty Activity.Что-то похожее на видео с цветными ключами, воспроизводимое поверх текущей активности, и в конце открывается вторичная активность.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

После вашего метода startActivity используйте overridePendingTranistion и поместите в него анимации

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(ActivityA.this, ActivityB.class));
                overridePendingTransition(R.anim.enter, R.anim.exit);
            }
        });

Анимации xml выглядят следующим образом: enter.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

exit.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="500"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="-100%"
        android:toYDelta="0%" />
</set>
0 голосов
/ 11 декабря 2018

Вы создаете всплывающее действие, включающее вашу анимацию, и реализуете AnimationListener .Внутри метода onAnimationEnd() вы создаете намерение, которое приведет вас ко второму действию.Не забудьте установить всплывающее действие в качестве действия запуска в вашем манифесте.

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

    }

    @Override
    public void onAnimationEnd(Animation animation) {
        Intent intent = new Intent (SplashActivity.this, MainActivity.class);
        startActivity(intent);    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
});

РЕДАКТИРОВАТЬ: если вы хотите воспроизвести видео с помощью медиаплеера, вместо этого вы используете Воспроизведение слушателя и выполнение того же намерения с onCompletion()

...