¿Cuál es la mejor manera de preparar activos para una aplicación de Android?

El mínimo que debe proporcionar es mdpi. Android luego escalará sus mapas de bits según sea necesario, y el consenso parece ser que no está haciendo un mal trabajo al reducir la escala (lea: muchos desarrolladores no pueden ver la diferencia entre eso y usar Photoshop). Esta es la razón por la que encuentra desarrolladores perezosos que solo proporcionan hdpi, de esta manera los gráficos no se verán demasiado borrosos en dispositivos de alta resolución, y Android se encargará del resto (a un ligero costo de CPU).

Ahora, para una aplicación bien diseñada, lo ideal sería cortar 4 tamaños: xhdpi, hdpi, mdpi y ldpi, y colocar los recursos en la carpeta res / drawablexxx adecuada. Mantenga res / drawable / para activos ‘sin densidad’ como los que construye a partir de XML.

Ahora, nueve parches no es lo que crees que es. Es un formato especializado que se usa para escalar activos de mapa de bits que no se escalarían ‘adecuadamente’ cuando se usan técnicas tradicionales como bicubic o supersample.

La forma más fácil de entender ninepatch es imaginar un cuadro de texto con texto dinámico dentro. Es posible que desee que el cuadro de texto tenga un lindo fondo, un poco como un marco en una pintura. Dibujó su marco y lo configuró como fondo de vista de texto. Ahora, a medida que el usuario / aplicación agrega más y más texto a la vista de texto, el gráfico cambia de tamaño.

(imagen cortesía de Google)

Desafortunadamente, por supuesto, se redimensionará proporcionalmente, lo que significa que el marco se verá rápidamente borroso y el texto eventualmente cubrirá la mayor parte.

Ahí es donde nueve parches son útiles. Puede especificar qué sección de png se estirará, en este caso, la mitad del marco. El resto se escalará duplicando píxeles.

La pregunta es, entonces, si debe proporcionar un gráfico separado de nueve parches para cada carpeta de resolución. La respuesta es, depende. Por ejemplo, en el caso de un fondo de botón con esquinas rectas, probablemente no. Pero algo un poco más complicado, digamos, esquinas redondeadas, podría beneficiarse al proporcionar versiones de múltiples ppp.

PD: lo anterior está simplificado, para que pueda comenzar y responder su pregunta sobre una forma ‘casi definitiva’ de hacer las cosas a partir de abril de 2012 para el 99% de los dispositivos disponibles. A propósito no profundicé en cosas como los calificadores de versión que son un campo minado (¡en el mejor de los casos!).