Todos los documentos de Android mencionan el directorio "dibujable". Sin embargo, cuando creo un proyecto de Android en Eclipse, no crea un directorio "/ res/dibujable", pero crea "/ res/drawable-ldpi" y "/ res/drawable-mdpi". Me imagino que esos tienen algo que ver con la resolución de píxeles, pero ¿qué está pasando exactamente aquí? Cuando revisé los tutoriales, creé manualmente un directorio "dibujable" y puse mis recursos allí, pero ¿era necesario? ¿Las referencias al trabajo "/ res/drawable /" funcionan si solo están presentes "drawable- {l | m} dpi"?drawable vs. drawable-ldpi/drawable-mdpi
Respuesta
Creo que esto fue agregado en Android 1.6. Todo se explica aquí: http://developer.android.com/guide/practices/screens_support.html
Supongo que tiene algo que ver con la forma en que generó el proyecto de Android. Normalmente, mía crea una carpeta hdpi, mdpi y ldpi. Básicamente, "dibujable" es el valor predeterminado.
Si tiene todos sus recursos en la carpeta hdpi e intenta ejecutarlos en un dispositivo ldpi, creo que obtendrá una excepción de algún tipo (no lo he probado, pero creo que este es el caso).
Se explica una explicación detallada de lo que ocurre sin recursos predeterminados here.
Debe mantener una colección predeterminada de recursos en la carpeta principal "dibujable" (que sí, puede que tenga que crear manualmente) solo para estar seguros, y para asegurar la compatibilidad con las versiones anteriores de Android. Android comprobará primero las carpetas de densidad específica, pero se retrotraerá a la carpeta dibujable predeterminada si no puede encontrar ese recurso específico en esa densidad.
Android escalará los recursos de la carpeta hdpi en un dispositivo ldpi si una aplicación tiene solo esta carpeta dibujable. – Michael
@Pixie: ¡Así parece! Debería haber hecho más investigación sobre esto primero. Este enlace: http://developer.android.com/guide/topics/resources/providing-resources.html#Compatibility detalla exactamente cómo funciona. Aún así, probablemente pondría algunos objetos arrastrables predeterminados en la carpeta principal para estar seguros, pero es bueno saber esto, ¡gracias! – kcoppock
@Michael, esto es incorrecto, vea http://stackoverflow.com/questions/24067728/does-android-override-resources-files-in-ascending-or-descending-order –
Calificadores Hdpi, mdpi y ldpi se agregaron en Android 1.6. Si va a ser compatible con Android 1.5, debe colocar todos los drawwables de medio dpi en el directorio dibujable predeterminado.
Puede leerlo here.
Sí, debe crear un directorio predeterminado/res/drawable en Eclipse.
Si desea utilizar las carpetas -hdpi/-mdpi/-ldpi, entonces necesita hacer diseños xml separados para referirse a ellas.
http://developer.android.com/guide/practices/screens_support.html
El lastest de crear un montón de carpetas dibujable para que cuando se crea una nueva aplicación para diferentes densidades de pantalla, aunque curiosamente la carpeta por defecto 'estirable' se menciona en los documentos nunca ha sido creado para mí por el SDK defecto.
Si duplica y cambia el tamaño de sus recursos gráficos para las seis carpetas de densidad creadas actualmente de forma predeterminada, desde drawable-ldpi a drawable-xxxhdpi, el tamaño de su aplicación será abultado para una aplicación de gráficos pesados, sin mencionar otros problemas que surgen como bloqueos de tamaño de montón (deben proporcionar diferentes carpetas para diferentes tamaños de montón de dispositivos).
Actualmente puse todos mis gráficos en la carpeta drawable-hdpi, excepto las copias del icono del iniciador para resoluciones más altas en las carpetas xhdpi, xxhdpi y xxxhdpi. No pongo nada en las carpetas mdpi y ldpi, y de hecho he eliminado esas carpetas para mantener la aplicación limpia. También podría haber cambiado el nombre del drawable-hdpi por simplemente drawable, pero he conservado el nombre predeterminado ya que actúa como la carpeta predeterminada en este caso de todos modos.
In this answer, @RomainGuy mencionó que debe mantener las imágenes apropiadas en sus respectivas carpetas (mdpi, xhdpi) y otras fuentes como archivos .xml para dibujar en su carpeta drawable
.
Por ejemplo,
si va a utilizar un dispositivo hdpi, aunque no haya puesto ninguna imagen en la carpeta hdpi, no se bloqueará; en su lugar cambiará el tamaño de la imagen de su siguiente carpeta de mejor ajuste (es decir, mdpi) y expandirá la imagen.
- 1. "@android: drawable/ic_" vs "@ * android: drawable/ic_"
- 2. Bitmap vs ImageView vs Drawable
- 3. Android personalizada Drawable vs custom View
- 4. Drawable-hdpi, Drawable-mdpi, Drawable-ldpi Android
- 5. Nine-Patch Drawable vs Shake Drawable. ¿Cuál debería ser el preferido?
- 6. Drawable vs Single ¿Bitmap reutilizable mejor con memoria?
- 7. Android: Drawable no aparece
- 8. drawable getResources(). Problema getIdentifier
- 9. BitmapFactory.decodeResource and drawable * folders
- 10. Drawable to byte []
- 11. Es posible utilizar drawable-mdpi-fr, drawable-hdpi-fr, drawable-ldpi-fr, para la localización con diferentes resoluciones
- 12. Drawable => escala de grises
- 13. XML drawable Bitmap tileMode error?
- 14. Cómo pasar Drawable usando Parcelable
- 15. Galería/AdapterView Child Drawable State
- 16. Android Drawable Images from URL
- 17. Inicializando SurfaceView con un Drawable
- 18. Agregar un filtro de color a un Drawable cambia todos los botones usando el mismo Drawable
- 19. Recursos para drawable-xlarge-mdpi AND drawable-sw600dp-mdpi sin duplicación
- 20. Establecer el tamaño del Drawable acodado?
- 21. Serializando un objeto Drawable en Android
- 22. Scale Drawable - ¿setImageLevel determina la escala?
- 23. implementar android: button = "@ drawable/checkbox" programtically
- 24. Android: ¿Es posible escalar un xml drawable?
- 25. Diferencia entre dibujable y drawable-mdpi
- 26. Obtiene el recurso Drawable dentro de DefaultHandler
- 27. Implementación de un drawable personalizado en Android
- 28. Cómo crear un Drawable de byte []? (Android)
- 29. Crear un Drawable vacío en Android
- 30. ¿Cómo puedo convertir una vista a Drawable?
el enlace no funciona. – jbaylina
@jbaylina link fixed –