Necesito aclarar algunas dudas sobre los activos de imagen de mi aplicación,
si especifico en un archivo xml que la altura de algo [vista de imagen] es 50 altura de inmersión
¿Qué tipo de pantalla debo elegir de la carpeta de recursos?
drawable, hdpi, ldpi, mdpi, xhdpi,
tener la imagen de 50 px de altura,
y cuál es el porcentaje para imágenes más grandes y de menor tamaño en comparación con la imagen base,
como en iOS, @ 2x, es literalmente 2 veces el tamaño de la imagen, y dices programáticamente el tamaño normal,
¡Gracias!
android
android-resources
android-image
android-screen-support
manuelBetancurt
fuente
fuente
Respuestas:
mdpi
es la densidad de referencia, es decir, 1 px en unamdpi
pantalla es igual a 1 inmersión. La proporción de escalado de activos es:ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 0.75 | 1 | 1.33 | 1.5 | 2 | 3 | 4
Aunque realmente no necesita preocuparse, a
tvdpi
menos que esté desarrollando específicamente para Google TV o el Nexus 7 original, incluso Google recomienda simplemente usarhdpi
activos.Lo que esto significa es que si está haciendo una imagen de 48 dip y planea admitir hasta
xxhdpi resolution
, debe comenzar con una imagen de 144px (192px si desea activos nativos para xxxhdpi) y hacer las siguientes imágenes para las densidades:ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 36 x 36 | 48 x 48 | 64 x 64 | 72 x 72 | 96 x 96 | 144 x 144 | 192 x 192
Y estos deben mostrar al menos del mismo tamaño en cualquier dispositivo, a condición de que haya colocado estos en carpetas específicas de densidad (por ejemplo
drawable-xhdpi
,drawable-hdpi
, etc.)Como referencia, las densidades de píxeles para estos son:
ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 120 | 160 | 213 | 240 | 320 | 480 | 640
fuente
Basado en la respuesta de kcoppock , he creado el siguiente script de shell para cambiar automáticamente el tamaño de todas las imágenes al tamaño correcto y copiarlas en las respectivas carpetas de Android dibujables *.
Cree un script de shell y pegue el siguiente código:
createAndroidImages.sh
#!/bin/bash read -p "Please enter the subfolder of the original images? " folder read -p "How many DP (width) should the image have? " dp for i in $(find $folder/. -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done mkdir drawable-ldpi mkdir drawable-mdpi mkdir drawable-tvdpi mkdir drawable-hdpi mkdir drawable-xhdpi mkdir drawable-xxhdpi mkdir drawable-xxxhdpi cp $folder/* drawable-ldpi/ cp $folder/* drawable-mdpi/ cp $folder/* drawable-tvdpi/ cp $folder/* drawable-hdpi/ cp $folder/* drawable-xhdpi/ cp $folder/* drawable-xxhdpi/ cp $folder/* drawable-xxxhdpi/ sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/* sips -Z $(echo $dp | bc) drawable-mdpi/* sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/* sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/* sips -Z $(echo $dp*2 | bc) drawable-xhdpi/* sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/* sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/*
Coloque su script en una carpeta y sus imágenes originales en una subcarpeta, por ejemplo:
Ejecute el script de shell en la terminal:
sh createAndroidImages.sh
Para copiar las imágenes creadas directamente a su proyecto de Android Studio:
cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/
¡Listo! ¡Espero que esto ayude a alguien!
PD Tenga en cuenta que las imágenes originales deben tener al menos cuatro veces el ancho en píxeles, que el ancho deseado en ppp (por ejemplo, 4 (factor xxxhdpi) * 30 ppp => 120px) para obtener resultados óptimos.
fuente
kcoppock hizo un gran trabajo explicando las densidades de pantalla de Andorid. Solo me gustaría agregar un punto más con respecto a la pregunta original.
El icono del iniciador de la tableta Android usa un cubo de densidad hacia arriba.
Según la publicación de Google+ del desarrollador de Google Nick Butcher
Encuentra la fuente aquí
fuente
Aquí están mis cálculos para aumentar y reducir la escala de imágenes para Android:
ldpi (120 ppp, pantalla de baja densidad) - 36px x 36px (0.19) (1)
mdpi (160 ppp, pantalla de densidad media) - 48px x 48px (0,25) (1,33)
hdpi (240 ppp, pantalla de alta densidad): 72 px x 72 px (0.38) (2)
xhdpi (320 ppp, pantalla de densidad extra alta) - 96px x 96px (0.5) (2.67)
xxhdpi (480 dpi, pantalla de densidad extra extra alta) - 144 px x 144 px (0,75) (4)
xxxhdpi (640 ppp, pantalla de densidad extra extra extra alta) - 192 px x 192 px (1.0) (5.33)
Mi breve artículo es útil para crear recursos de imágenes usando imagemagick, cuando hay varias imágenes.
fuente