Windows Phone | Cómo crear una SplashScreen para una App

Al contrario de lo que ocurría en Windows Phone 7.X donde sólo se disponía de una resolución de pantalla – WVGA (480 x 800) – y, por lo tanto, sólo había que crear una única SplashScreen para nuestras Apps, en Windows Phone 8, Microsoft ha introducido dos nuevas resoluciones de pantalla por lo que se hace necesario crear una SplashScreen para cada una de las diferentes resoluciones, 720p (720 x 1280) y WXGA (768 x 1280).

Windows Phone 7

En Windows Phone 7 basta con sustituir el fichero «SplashScreenImage.jpg«, que viene por defecto por la nueva SplashScreen con las dimensiones WVGA (480 x 800) y que se encuentra en el nodo raíz del proyecto de Windows Phone 7. Hay que prestar especial atención a que el fichero esté incluido como Content en la propiedad «Build Action«.

SplashScreen-480x800-WP7

 

Windows Phone 8

En Windows Phone 8 se hace necesario que creemos una SplashScreen diferente para cada una de las resoluciones disponibles como se muestra en la tabla siguiente.

Resolución

Dimensiones en px

Nombre del fichero

WVGA

480 x 800

SplashScreenImage.screen-WVGA.jpg

720p

720 x 1280

SplashScreenImage.screen-720p.jpg

WXGA

768 x 1280

SplashScreenImage.screen-WXGA.jpg

 
SplashScreen-720x1280SplashScreen-768x1280SplashScreen-480x800
 

Una vez se hayan creado los ficheros, tan sólo hay que desplegarlos en el nodo raíz del proyecto de Windows Phone 8 y, al igual que ocurre en Windows Phone 7, hay que tener especial cuidado con establecer la propiedad «Build Action» con el valor «Content»

Build-Action-Content

 

XNA Framework

Para poner una SplashScreen a un proyecto XNA no es necesario hacer uso del fichero SplashScreenImage.jpg sino que se debe mostrar una textura al inicio mientras se carga el contenido de la aplicación. Una posible forma óptima de hacerlo es la que nos indican en este artículo de la MSDN.

  • En el método Initialize():
    • Llamar a base.Initialize() para crear la propiedad GraphicsDevice
    • Cargar la textura
    • Dimensionarla a la resolución y orientación del juego
    • Establecer que la textura se auto-redimensione con un valor de 2
    • Usar el formato comprimido DXT
    • Crear una clase de tipo SpriteBatch
    • Renderizar la textura
    • Llamar al método GraphicsDevice.Present()
  • En el método Update(), cargar el contenido incrementalmente.
  • En el método Draw(), continuar dibujando la textura de inicio y entonces cambiar a una animación de loading tan pronto como estén cargados los datos.