Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
Personalización de la API de la pantalla de bienvenida de Android 12

Desde que Android lanzó la nueva API de pantalla de bienvenida con Android 12, muchas aplicaciones tuvieron problemas con pantallas de bienvenida duplicadas, falta de personalización, etc.

En este momento, es posible configurar el color de fondo y el ícono en el medio, pero ¿es posible personalizarlo un poco más? Dado que en este momento estamos limitados a usar un fondo de un solo color y un ícono de logotipo no redimensionable que no se ve muy bien.

Lo que estoy tratando de lograr es una pantalla de inicio personalizada, con una imagen dibujable como fondo (o una lista de capas con 2 elementos: una imagen de fondo y un logotipo centrado), ya que podría usarse antes de Android 12.

¿Alguien logró lograr este tipo de comportamiento?

Existe una solución alternativa para establecer el atributo windowIsTranslucent en verdadero y mostrar solo el segundo elemento (el correcto), pero presenta una mala experiencia de usuario, ya que parece que la aplicación no responde durante unos segundos.

over 4 years ago · Hanz Gallego
1 Respuestas
Responde la pregunta

0

Hice algo como esto. Primero elimine el dibujable predeterminado

 <style name="Theme.App.Starting" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/...</item> <item name="windowSplashScreenAnimatedIcon">@android:color/transparent</item> <item name="postSplashScreenTheme">@style/AppTheme</item> </style>

Luego infle su vista de presentación personalizada

 class MainActivity : AppCompatActivity(), SplashScreen.OnExitAnimationListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val installSplashScreen = installSplashScreen() installSplashScreen.setOnExitAnimationListener(this) setContentView(R.layout.activity_main) } override fun onSplashScreenExit(splashScreenViewProvider: SplashScreenViewProvider) { val view = splashScreenViewProvider.view if (view is ViewGroup) { val binding = ActivityMainSplashBinding.inflate(layoutInflater,view, true) // Do what you want with your inflated view animate(view) { // Remove splash splashScreenViewProvider.remove() } } } private fun animate(view: View, doOnFinish: () -> Unit) { view.animate() .withEndAction(doOnFinish) .start() } }

Al final, recuerde llamar a splashScreenViewProvider.remove() para eliminar la salpicadura.

over 4 years ago · Hanz Gallego Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda