Todas las diferentes resoluciones de los diferentes productos de Android me están volviendo loco.Cómo soportar todas las diferentes resoluciones de productos Android
Mi primera aplicación de Android que escribí fue diseñada para que admitiera las tres resoluciones comúnmente utilizadas: 240x320 (LDPI), 320x480 (MDPI) y 480x800 (HDPI). El 480x854 no dañó el diseño porque tiene el mismo ancho que 480x800.
también me he comprado los siguientes dispositivos para probar mis aplicaciones de Android en: Samsung Galaxy Europa (LDPI) HTC Desire Z (IPAP)
Por suerte 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 540x960 (¿HDPI?). Lo cual no mostró mi aplicación como debería y probablemente la mayoría de las tabletas tampoco lo mostrarán correctamente.
Lo que he hecho con mi primera aplicación se leyó la densidad y luego configurar 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 para dibujables LDPI, MDPI y IPAP. Esto funciona bien para las resoluciones descritas anteriormente, pero esto depende de la resolución de pantalla i.c.w. el tamaño de la pantalla y falla, por ejemplo, el HTC sensatoin con 540x960.
Sé que no todas las resoluciones se utilizan con tanta frecuencia, pero me gustaría apoyar tantas como sea posible. Stats of Screen Sizes and Densities
He leído Supporting Multiple Screens varias veces pero no he encontrado una respuesta clara a este "problema".
¿Debo leer la resolución y configurar los parámetros según las resoluciones en lugar de la densidad? ¿Es esto algo inteligente o cómo lidiar con esto?
¡Muchas gracias por su información!
Gracias los valores es muy útil, pero esto no resuelve el problema con la resolución de 540x960 o estoy equivocado. Porque SQRT (540^2 + 960^2) /4.3 = 256,15 (HTC Sensation) es aproximadamente lo mismo que SQRT (480^2 + 800^2) /3,7 = 252,15 (HTC Desire Z) y ambos lo harán ser indexado como HDPI donde como la pantalla de la Sensación es 60px más ancha. – patrick
Sí ... el problema aquí es que no podrá manejar el 100% de los tamaños de pantalla. Entonces, por ejemplo ... si quiere que una vista de texto cubra exactamente el ancho de las pantallas, incluso si aplica todas las técnicas posibles, habrá algunos dispositivos que envolverán el texto o algo así. Mi punto es que no puedes hacer que tu aplicación se vea exactamente como quieres en todos los dispositivos ... tienes que conformarte con hacerlo lo mejor posible. – Cristian