Splash Screen es una pantalla inicial que se muestra al iniciar la aplicación. Entonces, para mostrar su logotipo o para mostrar el nombre de su aplicación en el inicio de la pantalla. Similar a lo que hacen las aplicaciones de WhatsApp o Instagram en su lanzamiento. Muestran un logotipo simple de su aplicación. Ahora, aquí viene el problema, para hacer esto haces una actividad de lanzamiento, y en esa actividad, para mostrar tu contenido vas a usar el XML. Y ese código XML se agrega en la clase de actividad en setContentView() del método onCreate() . Así que en el inicio, desde onCreate()Se sabe que el método es un proceso pesado. El tiempo para cargar el contenido de nuestro código XML en la aplicación lleva demasiado tiempo, hasta que aparece una pantalla en blanco en el inicio, lo que se conoce como inicio en frío. Para evitar esta pantalla en blanco, puede usar otro método que use una lista de capas y usarlo como tema en el manifiesto.
Nota: Antes de comenzar, cree una actividad de inicio y elimine el archivo XML de esa actividad, ya que no usaremos el método onCreate en la clase.
Empecemos con la parte práctica.
Paso 1: crea el recurso dibujable
Agregue un nuevo recurso dibujable donde agregará contenido de la pantalla de inicio. Vaya al directorio res -> dibujable -> your_splashScreenDrawable.xml
XML
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <!-- Add Background color as per your necessity--> <color android:color="@color/your_favoriteBackgroundColor" /> </item> <item> <!-- Add Bitmap with gravity as center to align the content in center --> <bitmap android:gravity="center" android:src="@drawable/yourDrawableResourceFile" /> </item> </layer-list>
Bueno, en este fragmento de código, utilizará etiquetas de elementos en la lista de capas . Y estas etiquetas de artículos tienen los atributos particulares para satisfacer sus necesidades. Entonces, este fragmento será la pantalla de inicio que contiene un mapa de bits con un color de fondo.
Paso 2: agregue el recurso dibujable en styles.xml
XML
<style name="yourThemeName" parent="AppTheme"> <item name="android:windowBackground">@drawable/yourDrawableFileName</item> <item name="android:windowFullscreen">true</item> </style>
Y este código en styles.xml agregará propiedades adicionales a la pantalla de inicio como pantalla completa y muchas más. En esto, el atributo android:windowBackground agregará el recurso dibujable como fondo de la pantalla.
Paso 3: Manejar el tiempo de visualización de la pantalla de bienvenida en el archivo MainActivity.kt
Kotlin
class MainActivity:AppCompatActivty(){ private val mHandler = Handler(Looper.getMainLooper()) private val mLauncher: Launcher = Launcher() override fun onStart() { super.onStart() mHandler.postDelayed(mLauncher, SPLASH_DELAY.toLong()) } override fun onStop() { mHandler.removeCallbacks(mLauncher) super.onStop() } private fun launch() { if (!isFinishing) { startActivity(Intent(this@MainActivity, AnotherActivity::class.java)) finish() } } private inner class Launcher : Runnable { override fun run() { launch() } } companion object { private const val SPLASH_DELAY = 2000 private const val TAG = "MainActivity" } }
Y ahora este código es la parte principal ya que maneja el tiempo de visualización de la pantalla. Aquí una clase Launcher que extiende Runnable que se retrasa por el objeto del controlador y el lanzador pasa a otra actividad cuando se completa el tiempo de retraso. Y ahora, la parte crucial restante está en el archivo Manifiesto de la aplicación.
Paso 4: Use el estilo como tema en el archivo Manifiesto
Vaya a Directorio de manifiestos -> Abra AndroidManifest.xml. En el archivo Manifiesto, en su etiqueta de actividad, agregue un atributo de tema donde agregará este elemento de diseño como tema en la aplicación.
XML
<activity android:name=".MainActivity" android:theme="@style/yourDrawableTheme"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Publicación traducida automáticamente
Artículo escrito por abdulrazaaks404 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA