¿Necesito 14 diseños diferentes para admitir todos los dispositivos Android?

Realmente me siento confundido. Desde los documentos de developer.android.com, parece que para mantener mis imágenes correctamente ajustadas (relación de aspecto también) en todos los dispositivos Android actuales, necesito todos estos diseños a continuación. ¿Es eso realmente lo que todos están haciendo? ¿Me estoy perdiendo algo, o debería hacerlo de otra manera?

Low density Small screens QVGA 240x320 ------------------------------------------------ layout-small-ldpi layout-small-land-ldpi Low density Normal screens WVGA400 240x400 (x432) ------------------------------------------------ layout-ldpi layout-land-ldpi Medium density Normal screens HVGA 320x480 ------------------------------------------------ layout-mdpi layout-land-mdpi Medium density Large screens HVGA 320x480 ------------------------------------------------ layout-large-mdpi layout-large-land-mdpi High density Normal screens WVGA800 480x800 (x854) ------------------------------------------------ layout-hdpi layout-land-hdpi Xoom (medium density large but 1280x800 res) ------------------------------------------------ layout-xlarge layout-xlarge-land 

Su aplicación funcionará en el 100% de los dispositivos con el diseño clásico.

Simplemente puede agregar algunos botones o cambiar el diseño en modo horizontal agregando algunos calificadores ¡pero eso depende de usted!

Por ejemplo, en un dispositivo LDPI (resolución pequeña), es posible que desee ajustar algunos botones o cambiar un poco para que se ajuste a la pantalla pequeña.

¡También puede colocar algunos botones a la derecha en modo horizontal y en la parte inferior de su diseño en vertical!

No “debes” usarlos.

De acuerdo con Android Dev Protip de Roman Nurik sobre calificadores de tamaño de pantalla:

Si tiene diseños personalizados para dispositivos de pantalla más grandes, como tabletas, ahora es el momento de dejar de usar el calificador de recursos -large o -xlarge y cambiar a usar calificadores -swXXdp o -wXXdp . Estos últimos se introdujeron en el nivel 13 de la API , que básicamente todas las tabletas ahora cuentan con soporte según los últimos gráficos de la versión de la plataforma1.

significa que, básicamente, para todos los casos en los que -grande tendría algún efecto, -swXXdp se puede usar en su lugar para proporcionar más granularidad.

Entonces, ¿qué calificadores reales de sw o w deberías usar? Aquí hay un punto de partida rápido para darme algo:

Tabletas de 7 “: en lugar de layout-large, use layout-sw600dp.

Ejemplo: Nexus 7 = 960 × 600 dp; la más pequeña de las dos dimensiones es 600.

Tabletas de 10 “: en lugar de layout-xlarge, use layout-sw720dp.

Ejemplo: Nexus 10 = 1280 × 800 dp; la menor de las dos dimensiones es 800. Algunas tabletas de 10 “son un poco más angostas, por lo que el 720 es un punto de conmutación comúnmente utilizado.

Hay más que solo eso (realmente desea elegir puntos de conmutación basados ​​en los requisitos mínimos de su contenido, no en el factor de forma del dispositivo), pero eso es un #Protip para otro día (:: tos :: + Nick Butcher :: tos: :).

En el diseño, si no usas AbsoluteLayout, tu aplicación se redimensionará para ajustarse a la pantalla.

Pero en algunos casos, para pantallas más pequeñas necesita declarar un nuevo diseño con menos componentes, por ejemplo.

Para imágenes:

Usted tiene algunas opciones.

Simple ignore algunas resoluciones y deje que el dispositivo elija la mejor imagen para él. Declare en AndroidManifest los tamaños que desea admitir. O tiene solo uno y permite que el cambio de tamaño atornille su aplicación.

Sí. Debe definir un diseño diferente para una resolución de pantalla diferente.

Cuando se supone que debes trabajar con un tipo de aplicación de tableta. Esa vez realmente sientes eso. Hay una necesidad de diseño diferente. Porque las tabletas siempre vienen en diferentes tamaños.

Una cosa más, cuando trabajas en Android, significa que siempre debes probar tu aplicación con un dispositivo real. Y también prueba con emuladores de diferentes tamaños.