2011-04-05 27 views
61

Realmente me siento confundido. Desde el docs en developer.android.com, parece que para mantener mis imágenes correctamente ajustadas (relación de aspecto) 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?¿Necesito 14 diseños diferentes para admitir todos los dispositivos Android?

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 
+0

no, no es necesario , he implementado mi propia forma de manejar resoluciones de pantalla múltiples, consulte este http://stackoverflow.com/a/16518557/1939564 –

+0

¡Sin duda es un enfoque innovador! Parte de la razón de Sin embargo, la capacidad de diseño múltiple también permite que el desarrollador use los recursos de la pantalla de forma diferente dependiendo de en qué dispositivo u orientación se ejecute la aplicación. Creo que es justo señalar que iOS usa exactamente el mismo método. Hay Storyboard (diseño) para iPad y dispositivos iPhone. Debe mantener ambos si desea una aplicación en varios dispositivos. . – wufoo

+0

@wufoo Realmente aprecio tu mesa. ¿Existe la posibilidad de obtener también números para pantallas más nuevas (se hicieron más grandes, como xxlarge, ...)? O si me puede volver a enviar un enlace, ¡lo recomiendo! –

Respuesta

23

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

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

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

¡Es posible que también desee colocar algunos botones a la derecha en el modo horizontal y en la parte inferior de su diseño en vertical!

No tiene que "usarlos".

+2

Gracias. Pero lo que estoy teniendo problemas específicamente son fondos de imágenes. Mi compañía quiere poner una pantalla de bienvenida cuando se inicia la aplicación y realmente escasea dependiendo de la orientación del dispositivo. Lo arreglé haciendo dos imágenes de slash agudas; un retrato, un paisaje, sin embargo, el problema ahora es cuando ejecuto la aplicación en el Xoom, la pantalla de presentación es borrosa y irregular. Si escalo una pantalla de presentación de resolución de Xoom a un emulador QVGA, el texto no se puede leer. Entonces, ¿hago una pantalla diferente de res chap para cada dispositivo, o hay un medio feliz en alguna parte? – wufoo

+2

Solo necesita agregar una imagen/diseño diferente en xlarge y/o xlarge-land, entonces el xoom (y otros dispositivos de pantalla xlarge) los usará, y todos los demás mirarán los normales. – stealthcopter

+4

mezclando el significado de ldpi y términos pequeños lleva a esta confusión. Compruebe http://developer.android.com/guide/practices/screens_support.html en la sección Uso de los calificadores de configuración pequeño, normal, grande, xlarge se debe utilizar para proporcionar diferentes diseños. ldpi, mdpi, hdpi, xhdpi se deben utilizar para proporcionar diferentes tamaños de imagen. Solo mi opinión ... – Ewoks

2

En el diseño, si no utiliza AbsoluteLayout, su 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:

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 deja que el cambio de tamaño atornille tu aplicación.

+0

Tengo diferentes diseños para cada uno, pero aún no funciona. http://stackoverflow.com/questions/34378238/landscape-mode-for-app –

0

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

Cuando se supone que debe trabajar con la tableta tipo de aplicación. 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.

7

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

Si usted tiene diseños personalizados para los dispositivos de pantalla más grandes, tales como tabletas, ahora es el momento de dejar de usar el -grande o -xlarge calificador de recursos y cambiar a usar -swXXdp o -wXXdp calificadores. Los últimos fueron introducidos en API nivel 13, que básicamente todas las tabletas ahora tienen soporte de acuerdo con la última versión de la plataforma charts1.

significa que para básicamente todos los casos en los que -large tendría ningún efecto, -swXXdp puede usarse en lugar de proporcionar mayor granularidad.

¿Qué clasificadores reales de sw o w deben usarse? Aquí hay una rápida solo-dar-me-algo punto de partida:

7" comprimidos: En lugar de la disposición de grandes, el uso de diseño-sw600dp

Ejemplo: Nexus 7 = 960 × 600 dp; el. menor de las dos dimensiones es 600.

Tabletas de 10 ": en lugar de layout-xlarge, utilice layout-sw720dp.

Ejemplo: Nexus 10 = 1280 × 800 dp; la más pequeña de las dos dimensiones es 800. Unos 10" tabletas son un poco más estrechas así 720 es un punto de conmutación de uso común.

Hay más a él que apenas eso (que realmente quiere elegir cambiar puntos basado en requisitos mínimos de su contenido, no en factor de forma del dispositivo ), pero eso es un #Protip para otro día (tos :: :: + Nick carnicero :: tos:. :)

+0

¿qué hay de kindle HD 7? está bajo sw530dp y Samsung Tab 7 no puede identificar el calificador "sw" ya que tiene 2.3 y en mi aplicación el SDK mínimo es 8. –

+0

@VishalKhakhkhar ¡casi mi cabello comenzó a ponerse gris! lea esta solución: http://stackoverflow.com/questions/13156157/nexus-7-and-kindle-fire-hd-think-different –

+0

Sí, eso es cierto ... eso significa que es necesario implementarlo a gran escala para el viejo Samsung Tab 7 y sw530 común para Kindle 7 y Nexus 7 ¿verdad? –

Cuestiones relacionadas