9patch para una gran cantidad de recursos sin perder calidad

Mi diseñador trabaja en Illustrator y exporta todos los recursos para mdpi, hdpi y xhdpi (y también para iOS res) con un script. Para los botones y las imágenes streachables, estoy buscando la mejor solución para generar los 9patches.

Hasta ahora, estaba usando el draw9patch suave en el SDK para generar los 9patches. Todavía funciona, pero en serio, espero que haya una mejor manera. Si en mi proyecto tengo 20 botones, con 3 o 4 estados, y en 3 tipos de densidad, no puedo imaginar las horas que esta solución requerirá.

Una solución sería utilizar la herramienta Asset Studio, pero no quiero proporcionar mi archivo xhdpi y obtener imágenes mal generadas para las otras carpetas de densidad. Mi objetivo es obtener píxeles perfectos 9patches para cada densidad.

También intentamos utilizar archivos SVG para imágenes extensibles, pero parece que Asset Studio no los acepta.

Si mi diseñador intenta hacer el 9patch directamente en Illustrator, no puede usar el script para exportar, porque la línea de 1 px también será escalada y no medirá 1px más.

¿Así que hay una solución para hacer 9patches, sin perder calidad de imagen, y sin pasar diez horas por ello?

Sólo encontré esta cosa: http://android.elex.pe.kr/a-better-9-patch-tool

http://www.youtube.com/watch?v=jqc6c53-byQ

Lo revisará más tarde y le dirá si lo hace.

Mi solución es pasar un montón de horas aprendiendo draw9patch, y luego no tomará horas para hacer los botones. Hice esto yo mismo, y sufrí, pero draw9patch es una forma muy simple de hacerlo, y cada imagen (para los botones) me lleva no más de 15 segundos. Draw9patch imágenes deben ser grandes porque realmente sólo tiene que hacer una vez, y que trabajará con todas las densidades, ya que se extienden en consecuencia. Si tienes texto en tus imágenes, entonces tienes otro problema. Esto es mal visto porque usted pierde la capacidad de traducir su aplicación con un simple stings.xml

Mi solución:

1. Obtener impresionante en draw9patch

2. No utilice imágenes con texto. Draw9patch se puede utilizar para centrar el texto de un botón correctamente y esto aumentará la capacidad de su aplicación para ser utilizado en diferentes idiomas. Algo que puede aumentar fácilmente su descarga / ventas. Esto es importante, ya que incluso si usted da a su aplicación la capacidad de apuntar un idioma más (digamos … español), entonces realmente hace que el público objetivo feliz.

Aquí está un buen editor de nueve parches, que me ahorra toneladas de tiempo: descargar enlace jar y alguna descripción . La característica más importante es la función "copiar y pegar", que permite proporcionar las mismas áreas extensibles para imágenes en diferentes estados muy rápido.

No creo que haya algún editor que permita trabajar con diferentes tamaños de imagen, ya que puede haber una diferencia significativa para diferentes tamaños de pantalla.

Corro la cremallera a través de mi generación de 9 parches abriendo cada imagen para ser 9patched en un Editor de imágenes (Photoshop / Paint. NET) y luego aumentando el tamaño de lienzo por 2 en ambas dimensiones.

Una vez que haya hecho esto usted puede dibujar en su estiramiento y líneas de relleno tiempo rápido. Es un poco un dolor si lo estás haciendo por cientos de imágenes, pero sólo hay que hacer una vez por proyecto. No puedo imaginar muchos proyectos en los que habría muchos 9 parches para que tomara ese tiempo en absoluto …

Si realmente desea racionalizar el proceso puede quitar los indicadores de relleno de su 9patch y agregarlos a su vista usando el atributo de style

Si mi diseñador intenta hacer el 9patch directamente en Illustrator, no puede usar el script para exportar, porque la línea de 1 px también será escalada y no medirá 1px más.

Esta línea me preocupa – usted no debe ser la ampliación de imágenes mdpi a hdpi, su no sería ningún punto. Si sólo hay una imagen mdpi disponible, la utilizará y la escalará automáticamente en tiempo de ejecución.

Estoy usando 9 parches principalmente para dibujar fondos para los botones y otras vistas. La mayoría de ellos son fondos de un solo color con algún tipo de 2 píxeles separadores y algunos de ellos son gradientes con separadores también. Los pongo en la carpeta res \ drawable-nodpi, que es una carpeta especial que indica a android que no realice ningún escalamiento en su contenido.

Hasta ahora tengo los resultados esperados sin problemas en absoluto. Mis 2 separadores de píxeles son 2 píxeles de dispositivos reales (no píxeles de densidad) en varios dispositivos de ldpi a resoluciones hdpi que es lo que quiero.

Espero que esto ayude…

¿Así que hay una solución para hacer 9patches, sin perder calidad de imagen, y sin pasar diez horas por ello?

Paso # 1: Escriba un script que tome la información de 9 parches de un PNG y lo aplique a otro PNG, usando cualquier número de bibliotecas de lectura PNG para su lenguaje de programación de escritorio favorito

Paso # 2: Use draw9patch para obtener las reglas correctas para una imagen para una densidad

Paso # 3: Utilice el script para aplicar esas reglas a las otras variaciones del estado con la misma densidad

Paso # 4: Repita los pasos 2 y 3 para otras densidades

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.