2011-03-14 13 views
8

Tengo un conjunto completo de imágenes con diferentes densidades de píxeles, y necesito poner recursos de mapas de bits en la carpeta de drawables (en MDPI) para utilizarlos como recursos predeterminados (para evitar bloqueos en dispositivos de densidad de píxeles que no he atendido por ejemplo, xhdpi), pero eso significa duplicar los recursos en drawable-mdpi en la carpeta dibujable.Con recursos predeterminados en la carpeta dibujable (tamaño MDPI), ¿qué sentido tiene la carpeta drawable-mdpi?

Así como la duplicación es claramente malo, me pregunto si debería simplemente eliminar la carpeta dibujable-mdpi, y guardan mis recursos en el MDPI (por defecto) carpeta dibujable

O estoy perdiendo algo?

Respuesta

15

No necesita duplicar sus recursos. Una buena práctica es hacer lo siguiente: - Poner todos los elementos dibujables no basados ​​en imágenes en res/dibujables/(por ejemplo, todos los XML dibujables) - Poner todos los elementos dibujables (imágenes y 9 parches) dentro de res/dibujables -mdpi, res/drawable-hdpi, etc.

+0

Merci Romain. Entonces, con las imágenes en drawable-ldpi/mdpi/hdpi, sin mapas de bits en los drawables, ¿la aplicación no explotará en un dispositivo xhdpi, o escalará los hdpi bitmaps? Pensé que se necesitaban mapas de bits predeterminados en la carpeta dibujable (en la escala MDPI) –

+0

Me encantaría separar los recursos xml de los recursos de imágenes como usted sugiere aquí, sin embargo, por lo que entiendo, no puede hacer esto si admite dispositivos ldpi y solo tienen recursos optimizados de mdpi. Si eliminamos el soporte de ldpi, entonces podríamos. –

+0

No estoy de acuerdo. En mi opinión, esto no funcionará si introducen nuevos formatos como xxhdpi. Tendría que tener cuidado todo el tiempo y estar al tanto de los nuevos formatos. Si no hay imágenes predeterminadas en drawable, la aplicación se bloqueará en xxhdpi debido a la falta de recursos. – Bevor

1

Todo lo que diría, es que obviamente Romain tiene razón sobre el uso de herramientas para mantener los archivos xml y luego mover los recursos de imagen a las carpetas pertinentes mdpi, hdpi y ldpi, el único momento en que iría en contra de esto es cuando desea apuntar a 1,5 dispositivos.

El motivo es que 1.5 no reconoce las etiquetas -hdpi, -mdpi y -ldpi, las ignora y selecciona recursos (aparentemente aleatorios) de cada carpeta, por lo que debe agregar la siguiente marca -hdpi-v4, -mdpi-v4, -ldpi-v4, esto hará que esas carpetas sean accesibles para más de 1.6 versiones de Android, forzando a 1.5 a que solo vea la carpeta dibujable, en ese punto usted necesita tener todos sus recursos en drawable, que luego elimina la necesidad de tener la carpeta drawable-mdpi.

Sin embargo, dado que 1.5 está subiendo un poco y esos pocos dispositivos lo tienen, tiene más sentido apuntar a 1.6+ e ignorar esta complicación.

+0

Lo que me confundía era que para algunos objetos descartables solo tenía un mapa de bits en la carpeta hdpi, y la aplicación estaba explotando, diciendo que no podía encontrar recursos. Creé las versiones mpdi y ldpi y todo funciona bien, pero parecía extraño que Android no escogiera la imagen más cercana que tenía y la escalara. –

Cuestiones relacionadas