Problema de los recursos extraíbles de Android

He notado que el dispositivo real recoge diferentes recursos de ese eclipse muestra en vista previa. Por ejemplo he creado recursos para dispositivos con un ancho menor de 720dp como

  • drawable-sw720dp-mdpi para Samsung Galaxy Tab 1280×800 mdpi
  • drawable-sw720dp-hdpi para Nexus 10 2560×1600 hdpi.

Pero Samsung Galaxy Tab 1280×800 mdpi recoge el drawable-sw720dp-hdpi lugar de drawable-sw720dp-mdpi ?

Lo mismo ocurre con otros dispositivos. Si hay recursos drawable-sw320dp-hdpi , drawable-sw320dp-hdpi drawable-sw320dp-xhdpi , el Sony Ericsson xperia-ARC 854×480 hdpi recoge drawable-sw320dp-xhdpi ?

No puedo simplemente mantener el recurso drawable-hdpi porque hay dispositivos de 5'5 pulgadas de tamaño de pantalla. Por ejemplo Samsung galaxia 1280×720 hdpi 5'5 pulgadas, y para tales dispositivos hay diseño gráfico diferente por lo que ambos dispositivos 854×480 hdpi y 1280×720 hdpi utilizará el mismo directorio drawable-hdpi wich no es aceptable.

¿Algunas ideas?

Hace algún tiempo tuve un problema similar, mientras que la escritura de papel tapiz animado que estaba utilizando lienzo y mapas de bits. No pude lograr lo que quería utilizar las carpetas de diseño predeterminado.

En mi caso, por ejemplo, el dispositivo de densidad media con pantalla xlarge (1280×800), debe utilizar los mismos recursos que la alta densidad con pantalla normal (600×1024).

He decidido escribir mi propia solución, poniendo recursos en tres grupos y seleccionándolos usando reglas personalizadas.

 DisplayMetrics metrics = resources.getDisplayMetrics(); int screenSize = resources.getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK; switch (metrics.densityDpi) { case DisplayMetrics.DENSITY_LOW: if (screenSize == Configuration.SCREENLAYOUT_SIZE_SMALL || screenSize == Configuration.SCREENLAYOUT_SIZE_NORMAL) { return new SmallResourceProvider(resources); } case DisplayMetrics.DENSITY_MEDIUM: if (screenSize == Configuration.SCREENLAYOUT_SIZE_NORMAL) { return new MediumResourceProvider(resources); } default: return new LargeResourceProvider(resources); } 

Tal vez esto sea útil en su caso.

Yo también estaba enfrentando el mismo extraño problema. En mi caso Galaxy tab GT P7500 fue recogiendo imágenes de drawable-sw720dp-XXHDPI carpeta como yo tenía la carpeta XXHDPI también. Si he eliminado el XXHDPI, recoge el siguiente inferior que es la carpeta XHDPI.

El problema es con el calificador swxxxdp para carpetas dibujables. Si quito la anchura de la pantalla y uso apenas 1 sistema de imágenes de todas las densidades el problema parece ser resuelto. Sin embargo, quería tener un conjunto diferente de drawables para dispositivos de 7 pulgadas y 10 pulgadas. Lo que hice fue usar un conjunto diferente de nombres para las imágenes de 10 pulgadas y 7 pulgadas de imágenes y utilizar 2 diferentes conjuntos de diseños con sw600dp y sw720dp calificadores. Aquí está mi estructura actual que funciona bien. Sin embargo, esta no es la manera esperada de usar los recursos, ya que android recomienda externalizar los drawables . lamentablemente no pude encontrar una mejor solución.

 layout-land layout-sw600dp-land (uses image.png) layout-sw720dp-land (image_large.png) 

y para estirables,

 drawble-mdpi (image.png & image_large.png) drawable-hdpi drawable-xhdpi drawable-xxhdpi 
  • Asynctask, dimensiones esperadas después de este token
  • ADT (Eclipse) vs. Android Studio: ¿Cuánta diferencia de tamaño de archivo APK es normal?
  • Comprobaciones de API de Eclipse Lint de Android
  • TypeNotPresentException al ejecutar el testcase de Android con robolectric y eclipse
  • Ant depuración y liberación de hormigas falló
  • Detenga que Eclipse abra Logcat al ejecutar una aplicación para Android
  • Aumentar la visibilidad de una vista en Swipe con Gestos en android
  • Error al crear Contexto 0x3005
  • Eclipse y Android y classpath: bin y destino
  • ¿Cómo abrir una aplicación android instalada con un clic de botón?
  • ¿Cómo se establece la variable de entorno ANDROID_SDK_HOME?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.