Generalidades

Android 12: pantalla de presentación de la aplicación | por Swati Omar | noviembre de 2021

La pantalla de bienvenida se refiere a la pantalla de inicio. Puede pasar sin problemas a la aplicación mientras se carga. Cuando el usuario hace clic en el icono de inicio, aparecerá inmediatamente hasta que la aplicación sea completamente funcional.

La pantalla de bienvenida nunca se muestra durante un inicio en caliente.

Puede utilizar directamente la API de la pantalla de presentación. Pero para la compatibilidad con versiones anteriores, debemos usar la biblioteca de compatibilidad de la pantalla de inicio de Androidx para mantener una apariencia coherente en todas las versiones de Android. Si elige usar directamente la API SplashScreen para la migración, su pantalla de presentación se verá exactamente igual que antes en Android 11 y versiones inferiores; a partir de Android 12, la pantalla de presentación adoptará la nueva apariencia de Android 12.

  1. En el archivo build.gradle de nivel de módulo, establezca El SDK completo es 31 Y agregue una biblioteca de compatibilidad de pantalla de presentación en la sección de dependencias.
android 
compileSdk 31
dependencies
implementation 'androidx.core:core-splashscreen:1.0.0-alpha02'

2. Ahora, cree un tema personalizado y utilice Tema. Pantalla de bienvenida Porque es el padre y el valor del atributo se establece como asunto.

Si ya tiene una implementación de pantalla de presentación antigua que usa propiedades, por ejemplo Android: fondo de la ventana, Considere proporcionar archivos de recursos alternativos para Android 12 y versiones posteriores.

<?xml version="1.0" encoding="utf-8"?>
<resources>

<style name="Theme.CustomSplashScreen" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/yellow_700</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash</item>
<item name="windowSplashScreenAnimationDuration">100</item>
<item name="postSplashScreenTheme">@style/Theme.AppBaseTheme</item>
<item name="android:windowSplashScreenIconBackgroundColor">@color/white</item>
<item name="android:windowSplashScreenBrandingImage">@drawable/ic_android</item>

<!-- Configs for Status bar and Nav bar -->
<item name="android:statusBarColor">@color/purple_200</item>
<item name="android:navigationBarColor">@color/purple_500</item>
<item name="android:windowLightStatusBar">true</item>
</style>
</resources>

Establecer las propiedades del tema para la pantalla de presentación

  1. usar Fondo de pantalla de bienvenida de ventana Rellena el fondo con un solo color.
  2. usar windowSplashScreenAnimatedIcon Reemplaza el ícono del centro. Si desea utilizar dibujos animados, utilice AnimationDrawable o AnimatedVectorDrawable.
  3. usar windowSplashScreenAnimationDuration Establezca la duración de la animación del icono de la pantalla de presentación.
  4. usar postSplashScreenTheme Establezca el tema básico de la aplicación después de que se complete la pantalla de presentación. Esto es requerido De lo contrario, obtendrá una excepción (IllegalStateException: debe usar el tema Theme.AppCompat (o descendientes) en esta actividad).
  5. usar windowSplashScreenIconFondoColor Establecer el fondo detrás del icono de la pantalla de presentación.
  6. usar windowSplashScreenBrandingImage Se muestra una imagen en la parte inferior de la pantalla de bienvenida. Desafortunadamente, esto solo es compatible con Android 12+. Esta imagen debe tener los siguientes atributos …
  • Debe tener una anchura de 200 dp y una altura de 80 dp.
  • Utilice SVG o Drawable XML para que pueda escalar correctamente en todos los dispositivos.
  • Debe ser la relación de aspecto de un rectángulo. Se pueden cortar cuadrados y círculos.

7. Además, no olvide agregar la configuración para la barra de estado y la barra de navegación para asegurarse de aplicar un tema coherente al iniciar la aplicación, ya que sus temas básicos aún no se han utilizado, por lo que es posible que los deje como valores predeterminados. da como resultado la barra negra predeterminada en la barra de estado y la barra de navegación de la versión.

8. Ahora, en la lista, reemplace el tema básico con el tema personalizado que creó para la pantalla de presentación.

<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/Theme.CustomSplashScreen">

9. Ahora, llame Pantalla de bienvenida de instalación() En la actividad del lanzador antes de llamar a setContentView.eso Admite la API de pantalla de presentación y la compatibilidad adecuada con Android 12+. Vuelve al objeto de la pantalla de inicio para personalizar la animación o mantener la pantalla de inicio por más tiempo o usar Establecer mantener la condición visible Mantenga la salpicadura visible hasta que ya no se cumpla la condición. La condición se evalúa antes de que se extraiga cada solicitud de la aplicación, por lo que debe ser rápida para evitar bloquear la interfaz de usuario.

Si no está usando installSplashScreen (), recibirá una excepción en Android 12 (IllegalStateException: debe usar el tema Theme.AppCompat (o descendientes) en esta actividad).

Una vez que su aplicación dibuje su primer fotograma, la pantalla de bienvenida desaparecerá.Si necesita cargar algunos datos, puede usar Ver observador de árboles.addOnPreDrawListener Pausa la aplicación para dibujar su primer fotograma.

val content: View = findViewById(android.R.id.content)
content.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener
override fun onPreDraw(): Boolean
return if (viewModel.isDataReady())
content.viewTreeObserver.removeOnPreDrawListener(this)
true
else
false



)

Utilice splashScreen para personalizar la animación y utilice splashScreenView.remove para salir de la animación de la pantalla de bienvenida.

splashScreen.setOnExitAnimationListener  splashScreenView ->/** Exit immediately **/
// splashScreenView.remove()

/** Exit using animation after particular duration **/

val slideLeft = ObjectAnimator.ofFloat(
splashScreenView,
View.TRANSLATION_X,
0f,
-splashScreenView.width.toFloat()
)

slideLeft?.interpolator = AnticipateInterpolator()
slideLeft?.duration = 500L

slideLeft?.addListener(object : AnimatorListenerAdapter()
override fun onAnimationEnd(animation: Animator)
splashScreenView.remove()

)

slideLeft?.start()

LEER  Cómo monitorear y controlar el uso de datos en su teléfono Android | A través de información precisa sobre noticias | Abril de 2022

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba