2012-03-30 9 views
22

Tengo las mismas imágenes de 9 parches en MDPI/HDPI/xhdpi. ¿Hay alguna razón en particular por la cual no se guardará para el tamaño más pequeño? Las áreas extensibles se escalan automáticamente cuando el contenido es mayor, por ejemplo, un fondo como un parche de 9.¿Diferentes imágenes de 9 parches para diferentes densidades?

Ejemplo de fondo:

mdpi: mdpi

IPAP: hdpi

xhdpi: xhdpi

Respuesta

28

Muchos nueve parches son tan pequeñas que normalmente no es necesario volver a crear para diferentes tamaños de pantalla.

En su ejemplo, las esquinas del fondo no están escaladas. Si solo usa las mismas esquinas en todas las resoluciones, tendrían un tamaño diferente en diferentes resoluciones. En los teléfonos más pequeños, las esquinas parecerían más grandes en los teléfonos más grandes, las esquinas parecerían más pequeñas.

Otro ejemplo sería una línea. Si tiene una línea que tiene un efecto especial y la crea como un nueve parche para pantallas mdpi y la línea tiene dos píxeles de alto. Solo reutilizar este dibujo sin escalar en una pantalla xhdpi haría que tu línea tenga dos píxeles de altura en esta pantalla. Pero debido a que la pantalla tiene píxeles más pequeños (mayor resolución, el mismo tamaño de pantalla), la línea parecería más delgada.

Por lo tanto, siempre necesita crear un 9-Patch para cada resolución, o como @Shubhayu dijo que solo produce nueve parches de alta resolución y acepta que se vuelven borrosos si el sistema los reduce para otras resoluciones.

+0

Comprenda ahora. Saludos a Bielefeld :-) – user949884

+0

Puede aceptar una respuesta si resolvió su pregunta :) – Janusz

+0

Sí, tiene razón sobre el ejemplo de 2 píxeles de altura. Aunque no había observado un problema con la reducción de las imágenes. Es posible que no haya tratado con imágenes que muestren la diferencia. Gracias por el consejo :) Lo tendré en cuenta la próxima vez. – Shubhayu

6

No es necesario poner diferentes imágenes 9-parche de tamaño en toda la 3 carpetas. Simplemente coloque el que tenga la resolución más alta en su carpeta dibujable. Android lo recogerá para todas sus diferentes densidades.

También la nitidez de su imagen depende de la resolución de la imagen. Verá que se producen estiramientos borrosos para dispositivos de alta densidad si guarda el tamaño más pequeño (es decir, con la menor resolución) Esto no será evidente si la imagen de fondo es de color normal. Notarás la diferencia cuando el fondo tenga algunos diseños/repetibles de degradados.

Editar: Desde que escribí esta publicación, he descubierto muchas más cosas sobre el parche 9. Las imágenes de 9 parches no se reducen. Lo mejor sería poner la imagen de menor tamaño. Y en función de cómo busque otras densidades, debe hacer imágenes de 9 parches para las densidades afectadas. Aquí hay más detalles sobre el mismo,

http://www.shubhayu.com/android/9-patch-image-designers-vs-developers

+0

Y cambiará el tamaño de las imágenes de la densidad más alta para que coincida con la densidad elegida y de la imagen redimensionada en ella utilizará el mecanismo de nueve parches para estirar las imágenes. El resultado será imágenes borrosas y no se recomienda. – Janusz

+0

9-patch scale down? Yo solo pienso ampliar. – user949884

+0

Si Android selecciona un dibujante de una carpeta xhdpi para un teléfono mdpi, reducirá la escala de la imagen, independientemente de si son 9-Patch o no. Ver mi respuesta para más información. También tuve dificultades para aprender esto;) – Janusz

Cuestiones relacionadas