studio programacion para móviles español edición desarrollo desarrollar curso aprende aplicaciones android xamarin.android splash-screen aspect-ratio

para - manual programacion android español pdf



Muestra la imagen de la pantalla de bienvenida con ajuste automático. (2)

Parece tomar la imagen y maximizarla para que se ajuste a toda la pantalla mientras desordena la relación de aspecto. Por lo tanto, la imagen se ve enorme y horrible.

¿Hay alguna forma de maximizarlo, pero mantener la relación de aspecto para que se vea bien?

La razón por la que la imagen se amplía es porque la imagen que utiliza tiene píxeles más altos que la resolución de la pantalla del dispositivo en la que está probando la aplicación. Para resolver esto, el mejor método es crear imágenes del tamaño adecuado (píxeles) para diferentes pantallas de dispositivo y luego póngalos en archivos dibujables (drawable-ldpi, drawable-mdpi, drawable-hdpi, etc.) en consecuencia.

A continuación se muestra una lista del tamaño mínimo de pantalla para varias pantallas, según lo proporciona Google (todo en píxeles):

Para dispositivos móviles Android

LDPI- 426 x 320

MDPI- 470 x 320

HDPI- 640 x 480

XHDPI- 960 x 720

Para dispositivos de tableta Android

LDPI- 200 x 320

MDPI- 320 x 480

HDPI- 480 x 800

XHDPI- 720 x 1280

Ahora cree un dibujable XML en res / drawable que proporcionará el fondo de la actividad de bienvenida en el tema (Theme.Splash) usando layer-list . La imagen se carga en <bitmap> y se alinea en el centro usando el atributo de gravedad .

<!-- background_splash.xml --> <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/gray"/> <item> <bitmap android:gravity="center" android:src="@drawable/splashscreenimage"/> </item> </layer-list>

Ahora modifique su estilo (Theme.Splash) y establezca background_splash.xml como el fondo de su actividad de bienvenida en el tema.

<style name="Theme.Splash" parent="android:Theme"> <item name="android:windowBackground">@drawable/background_splash.xml</item> <item name="android:windowNoTitle">true</item> </style>

Con eso, la imagen debe establecerse en el centro con la relación de aspecto mantenida.

Nota: Para cambiar el tamaño de la imagen, puede usar Adobe Photoshop (me resulta más fácil trabajar con él). Tendrá que hacer un poco de experimentación para obtener el tamaño de imagen correcto que desea para la pantalla de bienvenida.

De acuerdo con las preferencias, también puede usar la imagen de 9 parches para que el borde de la imagen se pueda estirar para ajustarse al tamaño de la pantalla sin afectar el área estática de la imagen.

Enlaces de referencia:

Pantalla de inicio de construcción: https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd

Pantalla de presentación Tamaños de imagen: pantallas de presentación de Android para pantallas ldpi, mdpi, hdpi, xhdpi? - por ejemplo: 1024x768 píxeles para ldpi

Estoy usando el siguiente estilo para mostrar una pantalla de inicio para una aplicación de Android escrita en MonoDroid. Sin embargo, parece tomar la imagen y maximizarla para que se ajuste a toda la pantalla mientras desordena la relación de aspecto. Por lo tanto, la imagen se ve enorme y horrible.

¿Hay alguna forma de maximizarlo, pero mantener la relación de aspecto para que se vea bien?

<style name="Theme.Splash" parent="android:Theme"> <item name="android:windowBackground">@drawable/splashscreenimage</item> <item name="android:windowNoTitle">true</item> </style>

Esta es la actividad en C # que crea la pantalla de inicio y va al inicio de sesión.

[Activity(MainLauncher = true, Theme = "@style/Theme.Splash", NoHistory = true)] public class SplashScreenActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Start our real activity StartActivity(typeof(LoginActivity)); } }


Hay varios tipos de elementos dibujables en Android, incluidos mapas de bits reales, nueve parches y archivos XML. Intente envolver su archivo de imagen con un archivo XML que le dé atributos y luego use el archivo XML como dibujable en lugar de la imagen de origen.

Asumamos que su archivo xml se llama scaled_background y su imagen original es simplemente background.png:

<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center" android:src="@drawable/background" />

En lugar de configurar su fondo para que haga referencia a @drawable/background , debe configurarlo para que haga referencia al archivo XML: @drawable/scaled_background en este ejemplo. Los detalles sobre los modos de escalado se mencionan en la documentación de Drawable .