2012-05-03 18 views
17

Usamos 9png principalmente para reducir el tamaño de la aplicación. Pero, estoy enfrentando un problema peculiar. No estoy seguro de en qué carpeta debo colocar los 9png. Los puse en la carpeta HDPI. Dado que Android es "inteligente", parece que si uso la aplicación en un teléfono MDPI, 'escala' el 9png, lo que crea efectos locos. No tuve ningún problema importante hasta que lo intenté en una nota Galaxy. Parece que el 9png fue tomado de HDPI y escalado (Note tiene 800x1280) y creó efectos extraños.¿A qué carpeta colocar imágenes de 9png?

  • Entonces, ¿cuál es el lugar correcto para poner los 9pngs?
  • ¿Cómo decirle al sistema Android que no 'escale' los 9png según la carpeta en la que se encuentra?

Respuesta

14

De acuerdo con Romain Guy answer en grupos de Google:

El comportamiento de 9-parche no está definida cuando se contrae. En la práctica, verá superposiciones de las diversas secciones del paquete 9patch. No hacerlo :)

De lo que he notado en mis proyectos, un 9PNG es reducido al igual que cualquier PNG regular, por lo general, estoy solicitando a nuestro diseñador de todo el conjunto de imágenes de ldpi, mdpi, hdpi y xhdpi, y los transformo a todos en 9 parches.

Eso, a menos que haya un 9patch muy simple, como un fondo de botón normal, eso no hace ninguna diferencia cuando se estira o encoge, así que generalmente lo coloco en la carpeta normal drawable.

0

Simplemente coloque el 9png en su carpeta HDPI.

si el efecto se ve extraño en su Galaxy Note.

Pídale al diseñador que le proporcione un nuevo archivo de 9png para el XHDPI. y luego coloque el nuevo archivo en la carpeta XHDPI.

8

Tuve un problema similar con una imagen de nueve parches: si la coloqué en la carpeta res/drawable, no funcionó en una pantalla ldpi (distorsionó la imagen y perdió la transparencia).

La solución para mí fue ponerlo en la carpeta res/drawable-nodpi. La documentación indica:

Esto se puede utilizar para recursos de mapa de bits que no desea que sean escalados para que coincida con la densidad del dispositivo.

+2

Esto funciona para activos que no contienen ninguna función dependiente de la densidad, como las esquinas redondeadas. –

Cuestiones relacionadas