Я сделал это, используя только один макет XML. Я просто помещаю в него дополнительный RelativeLayout, который представляет мой начальный экран, затем я использую анимацию fadeOut и затем вызываю .setVisibility (View.GONE).
Это часть моего файла макета main.xml
<RelativeLayout
android:id="@+id/introLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<ImageView
android:id="@+id/logoImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/logo">
</ImageView>
</RelativeLayout>
Тогда внутри моей деятельности у меня есть это:
introLayout = (RelativeLayout) findViewById(R.id.introLayout);
Animation fadeOutAnim = AnimationUtils.loadAnimation(MyActivity.this, R.anim.fadeout);
introLayout.startAnimation(fadeOutAnim);
introLayout.setVisibility(View.GONE);
Вы можете выполнить этот запуск через 3 секунды, поместив startAnimation () и setVisibility внутри runnable и используя postDelayed (), как отмечалось выше. Не забудьте выполнить некоторую работу, пока этот вводный макет находится на экране, поэтому для пользователя это не просто 3-секундная задержка. Возможно, проверьте, является ли запущенная версия приложения текущей версией или нет.
EDIT:
Вам необходимо добавить файл fadout.xml в /res/anim/
(создайте каталог anim, если он не существует). Вот пример.
fadeout.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:duration="700"
android:fillAfter="true"/>