Finalmente creé una estructura que maneja diseños e íconos para múltiples pantallas.
Android generaliza las pantallas de los dispositivos en categorías según dos parámetros:
- Tamaño de pantalla, el tamaño físico de la pantalla (medido en diagonal)
- Densidad de pantalla, la densidad física de píxeles de la pantalla (en píxeles por pulgada o ppi) `
Para determinar el tamaño y la densidad de la pantalla rápidamente, instale la aplicación " What's my Size " para Android.
Tamaño de pantalla
Android define cuatro tamaños de pantalla generalizados:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- La mayoría de los teléfonos se clasifican como pequeños o normales (aproximadamente de 3 a 4 pulgadas en diagonal). Pero ahora, hay muchos teléfonos con pantalla grande como Galaxy S4, HTC One, Xperia Z
- Una tableta pequeña como la Samsung Galaxy Tab se clasifica como grande (más de 4 pulgadas)
- Extra grande se aplica a dispositivos grandes, por ejemplo, tabletas grandes
Android define cuatro densidades de pantalla generalizadas:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Típicamente:
- el tamaño de la pantalla tiene mayor impacto en el diseño de su aplicación
- La densidad de pantalla tiene un mayor impacto en su imagen y recursos gráficos.
Aquí se enumera la diferencia porcentual de la pantalla del dispositivo
- Ldpi- 75%
- Mdpi- 100% (base según el sitio del desarrollador de Android)
- Hdpi- 150%
- XHdpi- 200%
Pero como sabemos ahora, la mayoría de los dispositivos vienen con 480X800, así que lo considero un dispositivo basado, por lo que nuestro nuevo cálculo será como este
- Ldpi- 50%
- Mdpi- 66,67%
- Hdpi- 100%
- XHdpi- 133,33%
lo que significa que el primer icono y diseño se crearán solo para 480X800 y luego para los de descanso (es decir, Ldpi, Mdpi, Xhdpi).
Hay imágenes que son comunes para todos los diseños y deben ser uniformes en color y forma (sin forma compleja, sin curva), por lo que para este tipo de imagen estamos creando 9patch
para colocarla en la carpeta "dibujable (sin sufijo)". Para crear una imagen de 9Patch, puede usar DrawNinePatch o BetterNinePatch
Ahora simplemente cambie el nombre de sus imágenes según los estándares de Android y complete su aplicación con hdpi
y luego simplemente tome la drawable-hdpi
carpeta y Abra Adode Photoshop (recomendado) cree una Acción de tamaño múltiple (solo cambie el tamaño de acuerdo con la proporción porcentual) una vez creada la Acción para todos los tamaños y luego simplemente haga Automatice por lotes y proporcione el origen (drawable-hdpi) y el destino (drawable-ldpi, drawable-mdpi, drawable-xdpi).
La razón por la que insisto en que uses Photoshop porque cambiará el tamaño de tu imagen automáticamente con Acciones y un punto más es que no necesitas cambiar el nombre del archivo (le asignará el mismo nombre que el original).
Una vez que haya completado la creación de todas las imágenes, actualice su proyecto y pruébelo.
A veces, puede haber la posibilidad de que el diseño que admite la pantalla (xhdpi, hdpi, mdpi) se corte en una pantalla pequeña (ldpi), por lo que para manejar esto simplemente cree una carpeta de diseño separada (diseño pequeño) y agréguela ScrollView
(principalmente). Eso es.
Tabletas Las
tabletas se clasifican en dos tamaños.
- 7 "(1024X (600-48 (barra de navegación))) = 1024X552 (dibujable-grande)
- 10 "(1280X (800-48 (barra de navegación))) = 1280X752 (dibujable-xlarge)
En esto, necesitamos crear una imagen para la pantalla y ponerlas en consecuencia.
Entonces, en general, tendremos esta carpeta en nuestra aplicación para admitir múltiples pantallas.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
será una combinación más calificativa con Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
más calificador con Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
y más calificador con Screen size and Version
drawable-large-v11
drawable-xlarge-v11
y más calificador con Smallest width concept(SW)
drawable-sw???dp
Además, en Android V3.0 Honeycomb, introdujeron un nuevo concepto de SW(smallest width)
en qué dispositivo se clasifican en ancho de pantalla, por lo que si estamos creando una carpeta con nombre drawable-sw360dp
, el dispositivo con 720dp (ya sea ancho o alto) usará los recursos de esta carpeta.
por ejemplo, para encontrar el sufijo Samsung Galaxy S3
dp to drawable-sw? dp
Con referencia al cálculo de DP , si desea admitir su diseño o dibujable en S3, el cálculo dice
px = Ancho del dispositivo = 720
dpi = Densidad del dispositivo = 320
fórmula dada
px = dp * (dpi / 160)
intercambiando fórmula porque tenemos el valor de px
dp = px / (dpi / 160)
ahora poniendo valor,
dp= 720 / (320/160);
dp=360.
entonces drawable-sw360dp
que hará el trabajo
Obtenga la configuración de su dispositivo de GsmArena. De la misma
manera, también puede crear una carpeta de acuerdo con la versión de la API de Android del dispositivo, es decir, drawable-hdpi-v11`, por lo que el dispositivo que tiene API11 y es Hdpi utilizará estos recursos.
Consejos adicionales:
Utilice diseños relativos, dp, sp y mm
Unidades dp : píxeles independientes del dispositivo normalizados a 1 píxel físico en una pantalla de 160 ppi, es decir, densidad media. Escalado en tiempo de ejecución. Utilizar para las dimensiones del elemento de la pantalla
unidades sp : píxeles escalados, especificados como valores de punto flotante, basados en unidades dp pero además escalados para la configuración de preferencia de tamaño de fuente del usuario. Escalado en tiempo de ejecución. Usar para tamaños de fuente
siempre debe usar RelativeLayout para diseños; AbsoluteLayout está obsoleto y no debe utilizarse.
Utilice formatos de imagen adecuados: PNG frente a JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
Sin embargo, PNG y JPEG no son equivalentes. Tienen diferentes compensaciones de calidad y PNG no siempre es lo mejor:
JPEG puede ofrecer reducciones del tamaño de archivo de hasta un 50% en comparación con PNG, lo cual es significativo si su aplicación utiliza muchas imágenes
Un archivo JPEG "con pérdida" de mayor calidad puede verse mejor que un PNG "sin pérdida" altamente comprimido, para el mismo tamaño de archivo
Agregue etiquetas a sus imágenes y gráficos para depurar
Utilice el elemento soportes-pantallas
Configure sus emuladores con valores de dispositivo reales
Convencionalmente, los sistemas de escritorio se muestran a 72ppi (Mac) o 96ppi (Windows, Linux). En comparación con los dispositivos móviles, las pantallas de escritorio son siempre de baja densidad.
Configure siempre sus emuladores de Android para que imiten los valores reales del dispositivo y configúrelos siempre a escala para emular la densidad del dispositivo.
En Eclipse, es fácil crear múltiples emuladores (en la barra de menú de Eclipse, seleccione Ventana> Administrador AVD> Nuevo ) configurados con valores para dispositivos reales:
Asigne un nombre al emulador para el dispositivo real que está emulando. Especifique la resolución, no utilice tamaños genéricos incorporados. Establezca la densidad del dispositivo para que coincida con el dispositivo real (en el panel Hardware, establezca la propiedad de LCD abstraída en la densidad real, siempre un valor entero).
Cuando inicie el dispositivo, siempre seleccione Escalar pantalla a tamaño real y escriba la dimensión real de la pantalla en pulgadas.
Si no establece la densidad del dispositivo, el emulador se establece de forma predeterminada en baja densidad y siempre carga recursos específicos de ldpi. La resolución (dimensiones en píxeles) será correcta, pero los recursos de imagen que dependen de la densidad no se mostrarán como se esperaba.
Por supuesto, nada de lo que haga reproducirá una calidad de imagen de mayor densidad en una pantalla de escritorio de menor densidad.
Estos son los datos recopilados durante un período de 7 días que finaliza el 1 de octubre de 2012. Para ver las estadísticas más recientes sobre la versión de la plataforma Android, visite aquí.
Basado en el tamaño de la pantalla
Basado en la densidad de la pantalla