Una pantalla de inicio es la primera pantalla de la aplicación cuando se abre. Se utiliza para mostrar información introductoria básica, como el logotipo de la empresa, el contenido, etc., justo antes de que la aplicación se cargue por completo. En este artículo, seguiremos la mejor práctica para crear una pantalla de inicio sin crear una actividad adicional para ella y desaparecerá tan pronto como se cargue la actividad. A continuación se muestra un video de muestra para mostrar lo que vamos a construir. Puede usar Java/Kotlin para este proyecto.
Nota:
- Para crear una pantalla de bienvenida en Java: Creación de una pantalla de bienvenida
- Para crear una pantalla de bienvenida en Kotlin: ¿Cómo crear una pantalla de bienvenida en Android usando Kotlin?
- Para crear una pantalla de bienvenida animada: ¿Cómo crear una pantalla de bienvenida animada en Android?
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Puede seleccionar Kotlin/Java como lenguaje de programación.
Paso 2: cree un nuevo archivo dibujable y asígnele el nombre «splash_image.xml»
Vaya a res -> dibujable -> splash_image.xml y el siguiente código. Se agregan comentarios.
XML
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--Add the following code add the drawable color to white--> <item android:drawable="@color/white"/> <!--Add the logo that you want to display and its gravity to centre--> <item android:drawable="@drawable/gfg_logo" android:gravity="center"/> </layer-list>
Paso 3: agregue un nuevo estilo en el archivo themes.xml
Vaya a res -> valores -> themes.xml agregue un nuevo estilo y asígnele el nombre » splashScreenTheme «. Esto contendrá la información que queremos mostrar en nuestra pantalla de inicio, como WindowBackground y el color de la barra de estado .
XML
<resources xmlns:tools="http://schemas.android.com/tools"> <!--Create a new style and name it splashScreenTheme and add the following code--> <style name="splashScreenTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="android:windowBackground">@drawable/splash_image</item> <item name="android:statusBarColor">@color/black</item> </style> <!-- Default Code do not change it. we will use it as our theme after the aplash screen is shown--> <!-- Base application theme --> <style name="Theme.SplashAPIGFG" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <!-- Primary brand color--> <item name="colorPrimary">#2F8D46</item> <item name="colorPrimaryVariant">#2F8D46</item> <item name="colorOnPrimary">@color/white</item> <!-- Secondary brand color. --> <item name="colorSecondary">#2F8D46</item> <item name="colorSecondaryVariant">@color/teal_700</item> <item name="colorOnSecondary">@color/black</item> <!-- Status bar color. --> <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> <!-- Customize your theme here. --> </style> </resources>
Paso 4: agregue el estilo al archivo de manifiesto
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.introidx.splashapigfg"> <!--In the theme add the style that we just created--> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/splashScreenTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Paso 5: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt. Aquí configure el tema que queremos mostrar después de que se muestre la pantalla de bienvenida.
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // add the default theme here which we want // to display after the splash screen is shown setTheme(R.style.Theme_SplashAPIGFG) setContentView(R.layout.activity_main) } }
Nota: el archivo activity_main.xml solo tiene una vista de texto para mostrar un mensaje.
XML
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="This is test app for Splash Screen" app:layout_constraintBottom_toBottomOf="parent" android:textStyle="bold" android:textSize="22sp" android:textColor="@color/black" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
Producción: