Explique la diferencia entre dibujable, dibujable-ldpi, dibujable-mdpi y hdpi dibujable
-
28-10-2019 - |
Pregunta
Tengo una idea aproximada de para qué sirven cada uno de estos directorios, pero no tengo claro el concepto y tengo algunas preguntas específicas.
Por ejemplo, ¿cuáles son los DPI objetivo para cada directorio? Cuando crea un activo, ¿debería estar en ese DPI objetivo o debería estar en el DPI de pantalla de 72 ppi más normal? Si está apuntando a múltiples dispositivos, ¿es apropiado poner un PNG en dibujo o siempre debe tener múltiples versiones ligeramente adaptadas a las pantallas específicas?
Gracias.
Solución
Como los demás han sugerido, la documentación en línea de Android tiene excelentes artículos sobre esto. Sin embargo, voy a intentar enumerar aquí algunos consejos rápidos y útiles:
- Considere que MDPI es
1
. Entonces, LDPI es0.75
Y HDPI es1.5
. Lo que eso significa es que si tienes un dibujo que es, digamos,50x50
En una pantalla MDPI tendrá que ser~37x37
en una pantalla LDPI y75x75
en una pantalla HDPI, Para aparecer aproximadamente al mismo tamaño físico en cada pantalla (es decir, 2 cm si coloca una regla en la pantalla). Además, la pantalla de su computadora es más probablemente MDPI, por eso se recomienda comenzar con Drawables MDPI y luego cambiarles el tamaño: el tamaño físico del dibujo estará muy cerca entre la pantalla de su computadora y un dispositivo MDPI Android. Si ve un HDPI dibujable en su computadora y en un dispositivo HDPI notará que es mucho más grande (de nuevo, físicamente - Pon una regla en el estilo de TI) en la pantalla de PC. - Si no suministra dibujables especiales para cada densidad, Android escalará el más cercano disponible automáticamente.
- No debe considerar el DPI de un dispositivo que tiene nada que ver con el tamaño de la pantalla y/o el número de píxeles y/o la relación de resolución y/o aspecto. Un dispositivo podría ser muy pequeño y tener una pantalla HDPI o muy grande y tener una pantalla LDPI. El objetivo de esta diferenciación de densidad es tener cosas Mira del mismo tamaño en todos los dispositivos, no Encaja lo mismo en todos los dispositivos. Por ejemplo, si un dibujo llena toda la pantalla en un dispositivo MDPI, no espere que haga lo mismo en otro dispositivo MDPI. Además, no espere "ver lo mismo" en diferentes dispositivos DPI. La mayoría de los dispositivos HDPI realmente tienen más espacio que los dispositivos DPI más bajos. Por ejemplo, si un
ListView
puede mostrar 5 elementos en un dispositivo MDPI, podría mostrar 6 elementos en un dispositivo HDPI, a pesar del hecho de que elListView
Los elementos tienen la misma densidad independiente (es decir, 1.5 veces más grande en HDPI que en la altura de MDPI).
Podría haber salido un poco fuera de lugar, pero estas son cosas que he aprendido a tiempo golpeándome la cabeza contra ellos. Solo trato de guardar el dolor de cabeza de otra persona :)
Otros consejos
Lo siento, pero Android tiene un gran documento en línea con ejemplos, así que para este tipo de pregunta, la respuesta es:
http://developer.android.com/guide/practices/screens_support.html
No hay valores DPI exactos para cada carpeta. Cada carpeta está relacionada con algún rango. Mira aquí: http://developer.android.com/guide/practices/screens_support.html
Estos directorios deben mantener recursos dibujables optimizados para alguna densidad de pantalla. Puede mantener solo un dibujo para HDPI o cualquier otro, pero en dispositivos con otras configuraciones de DPI se redimensionará de alguna manera y tomará tiempo/recursos. También la imagen DPI baja se verá pobre en dispositivos con HDPI.
Debido al diferente tamaño y resoluciones de pantalla, Android le permite organizar sus imágenes dibujables de acuerdo con las carpetas. Las imágenes para pantallas DPI altas deben colocarse en HDPI y de manera similar MDPI y LDPI. La carpeta predeterminada para Drawables es Drawable si el sistema operativo no coincide con ninguna categoría DPI o los recursos no se encuentran en directorios DPI especiales, el sistema elige el recurso del directorio de Drawables.
El tamaño no es exacto, pero hasta 130 ppi se considera pequeño, de 130 a 180 se puede considerar MDPI, de 180 a 200 se puede considerar como HDPI y el más alto se clasifica como XDPI.
http://developer.android.com/guide/practices/screens_support.html