2010-03-09 8 views
8

La documentación de Android dice que las mejores prácticas son crear dos directorios dibujables: uno para HDPI y otro para MDPI. También dice que si el directorio MDPI no existe y un dispositivo MDPI ejecuta la aplicación, reducirá los HDPI para que todo se vea bien.¿Hay alguna desventaja al usar solo recursos de imágenes de alta resolución para una aplicación de Android?

¿Hay alguna razón para no hacer un solo conjunto de gráficos de alta resolución?

Una estafa que puedo pensar es en problemas de rendimiento y un profesional que se me ocurre es solo tener un conjunto de imágenes para su aplicación.

+0

¡No olvides ldpi! –

Respuesta

6

Básicamente, la situación con esto podría ser extrapolado para la mayoría de las mejores prácticas:

Puede hacerlo de otro modo, pero más a menudo que no, que no debería.

No es que no se puede ir sólo con la drawable-hdpi, pero la adición de drawable-ldpi y drawable-mdpi le ofrece la posibilidad de personalizar y ajustar sus activos, al precio de carga hasta un poco de su aplicación.

Por favor, tenga en cuenta que este aumento de volumen arriba no será tan dramática - si se asume que:

  • el tamaño de los recursos es proporcional a la cantidad de píxeles
  • las diferencias entre los activos para diferentes resoluciones son proporcionales a la diferencia entre las resoluciones

la carpeta drawable-mdpi será sólo el 37% de drawable-hdpi y drawable-ldpi será sólo el 18% de drawable-hdpi

También los sufijos de las carpetas de res son especialmente útiles cuando se usan juntos: puede tener un control total sobre la aplicación. En algunos casos, los recursos están predefinidos para mucho más que pantallas de densidad media-baja-baja, por lo que yo diría que no debería preocuparse tanto por el volumen adicional.

Como ya pensaste, puedes evitar la escala dinámica de los recursos (peor que escalar de antemano). No será un gran problema, pero la mayoría de las veces, si puede evitar operaciones en el dispositivo haciendo preparativos adicionales en el proceso de desarrollo/producción, eso es algo bueno.

+3

Sí, no hay ninguna razón para no preparar la mayoría de sus activos para todos los tamaños. También tenga en cuenta que algunos recursos como el ícono de la aplicación * definitivamente se verán mal (borrosos) cuando se escalen desde hdpi hasta pantallas mdpi o ldpi. –

+0

Gracias, ni siquiera consideré el hecho de que los tamaños de los recursos son mucho más pequeños a menores densidades. Quiero que mi aplicación se vea exactamente igual en todos los dispositivos (por ahora), así que creo que solo usar drawable-hdpi está bien para mí siempre que no vea demasiada degradación en el rendimiento. –

+0

@Christopher - Lo tendré en cuenta para el ícono de la aplicación. Supongo que tendré que probar los gráficos en la aplicación. –

1

El único gran inconveniente de usar sólo IPAP (para el 90% de nosotros que no trabajan en equipos grandes con el diseñador diseñado que sólo puede preocuparse de la carpeta/res en el proyecto) se incrementa CPU & (más importante) el uso de memoria . Es decir. - tiene un dispositivo de 320x480 que carga y usa 1000x1000 imágenes (están reducidas en la pantalla, pero usan la misma memoria que si se mostraran en su tamaño completo).

Por suerte, acabo de encontrar esta pequeña joya que funciona bastante bien - se genera automáticamente otros tamaños de las imágenes en xhdpi:

https://code.google.com/p/android-drawable-converter/

Incluso mejor - es configurable para que pueda agregar nuevo tamaño (xxhdpi) o simplemente generar ciertos tipos (mdpi).

Cuestiones relacionadas