Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo apoyar todas las diferentes resoluciones de productos android

Todas las diferentes resoluciones de los diferentes productos Android me están volviendo loco.

Mi primera aplicación para Android que escribí fue diseñada para que soportara las tres resoluciones de uso común: 240×320 (LDPI), 320×480 (MDPI) y 480×800 (HDPI). El 480×854 no dañó el diseño porque tiene el mismo ancho que 480×800.

También he comprado los siguientes dispositivos para probar mis aplicaciones Android en: Samsung Galaxy Europe (LDPI) HTC Desire Z (HDPI)

Afortunadamente mi novia tiene un HTC Wildfire S (MDPI) así que tengo la mayoría de las resoluciones cubiertas.

Pero hoy, mi hermano descargó mi aplicación en su nuevo HTC Sensation que tiene otra resolución de 540×960 (HDPI?). Que no mostrar mi aplicación como debería y probablemente la mayoría de las tabletas tampoco lo mostrará correctamente.

Lo que he hecho con mi primera aplicación se leyó la densidad y luego establecer los parámetros:

public void set_ui_parameters() { DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); if(metrics.densityDpi == DisplayMetrics.DENSITY_HIGH){ textSize = 35; timeWidth = 80; dayWidth = 110; moneyWidth = 50; } else if(metrics.densityDpi == DisplayMetrics.DENSITY_MEDIUM){ textSize = 35; timeWidth = 53; dayWidth = 73; moneyWidth = 33; } else if(metrics.densityDpi == DisplayMetrics.DENSITY_LOW){ textSize = 28; timeWidth = 40; dayWidth = 55; moneyWidth = 25; } } 

Además de los parámetros también he creado drawables para LDPI, MDPI y HDPI. Esto funciona bien para las resoluciones descritas anteriormente, pero esto depende de la resolución de pantalla icw tamaño de pantalla y falla, por ejemplo, el HTC sensatoin con 540×960.

Sé que no todas las resoluciones se utilizan a menudo, pero me gustaría apoyar a tantos como sea posible. Estadísticas de Tamaños y Densidades de la Pantalla

He leído varias pantallas de apoyo varias veces, pero no encontró una respuesta clara a este "problema".

Entonces, ¿debería leer la resolución y establecer los parámetros de acuerdo con las resoluciones en lugar de la densidad? ¿Es esto una cosa inteligente para hacer o cómo hacer frente a esto?

¡Muchas gracias por tu información!

  • Disposición de Android S3 vs diseño Galaxy Nexus
  • Soporte para diferentes resoluciones android
  • ¿Diferencia entre "tamaño de pantalla" y "densidad de pantalla" en Android?
  • 5 Solutions collect form web for “Cómo apoyar todas las diferentes resoluciones de productos android”

    Usted no tiene que hacer eso para apoyar densidades diferentes. Lo que haces es crear carpetas de recursos diferentes:

     res/values-ldpi/dimens.xml res/values-mdpi/dimens.xml res/values-hdpi/dimens.xml 

    Entonces Android decidirá qué archivo usar. Usted puede tener algo como:

     <!-- in values-ldpi/dimens.xml --> <dimen name="textSize">25dip</dimen> 

    y..

     <!-- in values-mdpi/dimens.xml --> <dimen name="textSize">20dip</dimen> 

    Etc Y usted no debe preocuparse por la resolución … hay un montón de diferentes tamaños de resolución por lo que sería un infierno para tomar decisiones basadas en eso.

    Además, si utiliza dp lugar de píxeles, casi nunca tendrá que crear archivos de dimensiones diferentes para cada densidad. Por supuesto, a veces tienes que hacerlo, pero depende de la aplicación.

    Lo único que tienes que hacer es, que estableces android: minSdkVersion a 7 o superior en tu archivo de manifiesto. Es posible que algunas vistas aparezcan ligeramente diferentes, pero la aplicación es aplicable y en toda la pantalla.

    Ahora, sólo estoy adivinando aquí ya que el resto de la implementación no se muestra, pero supongo que está utilizando las medidas derivadas como px

    Echa un vistazo a dp . Eso esencialmente hace todas esas cosas que usted hizo, automáticamente, para cualquier dispositivo. (Píxeles independientes del dispositivo)

    No se preocupe por la ligera diferencia en la resolución: 540×960 es sólo un poco más grande que 480×800. El espacio extra vertical es fácil: le da más espacio para sus listas. Para el espacio horizontal, siempre y cuando esté manejando sus diseños correctamente, simplemente tendrá un relleno adicional (30pix ea) en los lados.

    Desafortunadamente, las imágenes de ancho completo (480 de ancho) son un problema ligeramente mayor. Si quieres imágenes con píxeles perfectos, querrás usar scaleType = "center" para que la imagen se centre , pero no las escalas. Si desea un ancho completo, puede utilizar scaleType = "fitCenter" para completarlo. Será un poco confuso … pero tantas cosas en Android son 😉

    También me encontré con este problema, excepto que mi aplicación es un juego donde hay un lienzo SurfaceView que dibujo imágenes de fondo y sprites (similar al ejemplo de LunarLander).

    La manera en que lo manejas aquí es extender tu imagen de fondo al tamaño más grande que deseas apoyar (540×960), pero conservas todas las cosas importantes (como botones, texto, información, etc.) dentro de un rectángulo más pequeño de 480×800. Puede ampliar la imagen o añadir bordes. La clave es que no hay nada importante.

    Las personas con teléfonos 480×800 verán su aplicación normal. Las personas con teléfonos 540×960 verán un poco más de frontera.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.