2010-04-26 18 views

Respuesta

11

This es el enlace más directo que he encontrado sobre el tema.

+0

Cambiando a la respuesta aceptada, ya que este enlace proporciona una mejor información sobre las características del borde elástico frente al relleno. – Roddy

7

Solo eche un vistazo a una imagen de 9 patch en un visor de imágenes. Simplemente es un borde de 1px con píxeles negros que flanquean las áreas estirable y marcas transparentes de las partes estáticas.

Si uno se acerca a esta imagen se puede ver el borde negro que marca la zona estirable:

example http://web6.twitpic.com/img/91916457-a53b6866db73378bda07c039151c69aa.4bd6119a-full.png

+0

Esperaba una especificación documentada, pero supongo que es suficiente. – Roddy

+0

No creo que haya más documentación necesaria, ya que es simplemente un png normal con un borde de 1 píxel. – stealthcopter

+0

No tengo totalmente claro cómo se interpreta el borde de 1 píxel, especialmente con las selecciones de píxeles no contiguos y la diferencia entre los márgenes superior e inferior. – Roddy

6

Le sugiero encarecidamente que no implemente el sistema 9patch en otras plataformas, por varias razones.

He estado utilizando las herramientas de desarrollador de Android durante un año y he hecho un uso extensivo de 9 archivos de parche.

Son una pesadilla. PNG no es un formato de datos, es un formato de imagen. Mezclar los dos en el archivo .9.png es buscar problemas.

9 Los archivos de parches no son una buena idea porque combinan los formatos de imagen y datos en un solo archivo que no es totalmente manejable por un diseñador ni por un desarrollador.

Nueve archivos de parche: lamentará su participación en algún momento durante la fase de mantenimiento, soporte y actualizaciones.

Tal vez si en algún momento futuro se agreguen 9 archivos de parche a una cantidad de herramientas de calidad (por ejemplo, PS CS4 no entiende 9 archivos de parche como un formato específico, ni respeta las reglas de nueve formatos de parche válidos .)

Las herramientas existentes para nueve archivos de parche son terribles, esencialmente inutilizables en opinión de la mayoría de los diseñadores que he contratado.

+0

+1 para una vista fuerte: estoy de acuerdo en que las herramientas no son geniales. Sin embargo, dado que necesito la funcionalidad de 9 parches de imágenes "ampliables", ¿qué alternativa tengo? Reinventar la rueda podría ser incluso más tonto. – Roddy

+1

Creo que el concepto de 9 parches es un ejemplo de una idea realmente genial implementada de la peor manera posible. Otro enfoque sería tener un archivo PNG (estándar de la industria) y un formato XML que incluyera 4 dimensiones. Estire X, Estire Y, Pad X y Pad Y. Luego, use un analizador personalizado (XML en lugar de PNG) y luego manipule el PNG para estirarlo. De esta manera, su PNG todavía se puede reutilizar para otras cosas (y funciona en Photoshop) y su mercado de diseño está en XML, donde los programadores pueden usarlo fácilmente. –

+2

Estoy totalmente en desacuerdo con Cory aquí. He usado PNG de 9 parches en Photoshop durante 10 meses y funcionan como un encanto. de hecho, mi interfaz de usuario se ve nítida con esta técnica, ¡es genial! –

1

navegadores modernos soportan CSS fondos basados ​​9-Path: http://www.css3.info/preview/border-image/

+0

buen enlace, el texto de presentación motiva los 9 parámetros; entonces, ¿el parche 9 es una definición explícita de las 9 áreas de interés para colocar el mapa de bits en las coordenadas del lienzo? – Vass

0

Me llevó un tiempo entender que la extensión del archivo 9 parche debe ser xxxx.9 y no xxx.9.png

+0

en ese caso, simplemente ignora los datos de 9 parches en total – MrJre

1

Encontré este enlace para ser muy útil: link to blog post. Utiliza algunos ejemplos para los diferentes bordes definidos cuando se crea un parche 9. Muestra cómo se usa la información adicional para escalar las dimensiones de las imágenes (x, y).

Incluso hay un bonito comentario de Richard L. al final que dice cómo se pueden agregar regiones para protegerse de la escala de la imagen incluyendo cortes en los bordes; p.ej. no escalar secciones en la imagen.