Вы можете создать свои собственные файлы анимации .xml, чтобы они появлялись в новых Activity
и постепенно уменьшались в текущих Activity
:
fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />
fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
Используйте его в таком коде: (Внутри вашего Activity
)
Intent i = new Intent(this, NewlyStartedActivity.class)
startActivity(i)
overridePendingTransition(R.anim.fade_in, R.anim.fade_out)
Приведенный выше код исчезнет из текущего активного Activity
и исчезнет из нового, что Activity
приведет к плавному переходу.
ОБНОВЛЕНИЕ : @Dan J указал, что использование встроенной анимации Android улучшает производительность , что я действительно обнаружил после некоторого тестирования. Если вы предпочитаете работать со встроенной анимацией, используйте:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
Обратите внимание, что я ссылаюсь android.R
вместо R
доступа к идентификатору ресурса.
ОБНОВЛЕНИЕ : сейчас обычной практикой является выполнение переходов с использованием класса Transition, представленного на уровне API 19 .
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);
просмотр этих файлов также может дать вам подсказки о том, как улучшить ваши пользовательские анимации (например, сделав постепенное появление дольше, чем исчезновение).