2011-09-28 13 views
5

Estoy creando una aplicación para Android en la que deseo compatibilidad con múltiples pantallas. Para estas he usado 9 imágenes de parches.Cómo usar 9 imágenes de parche en Android para diferentes-2 densidades (como mdpi, ldpi, hdpi).?

Pero mi pregunta es si usar 9 imágenes de parche será suficiente para diferentes dispositivos de densidad 2 o tendré que crear diferentes-2 9 imágenes de parche para densidades variables (como mdpi, ldpi, hdpi).

Gracias de antemano

+1

[Android Cómo usar el parche 9 png] (http://adilsoomro.blogspot.com/2012/11/android-how-to-use-9-patch-png.html) –

Respuesta

17

poco me encontré a mí mismo en la misma situación así que vamos a arrimar el hombro y ampliar lo que ya se ha dicho ...

Sí, imágenes 9-patch escalarán , para eso existen. Pero si debe usar una imagen de 9 parches para todas las densidades de pantalla, eso depende realmente de la imagen. Las imágenes de 9 parches se usan más comúnmente, por ejemplo, botones. Puede tener botones de diferentes tamaños en su aplicación y una imagen de 9 parches los ayudará a manejarlos, sin importar cómo califique su tamaño (siempre que la imagen de 9 parches se cree correctamente).

Pero digamos que el diseño de su botón tiene algunas esquinas realmente redondas para la versión hdpi. Usted crea su imagen de 9 parches sin ensuciar las esquinas, pero cuando la mira en la versión de ldpi, se dará cuenta de que sus esquinas son demasiado grandes para esa baja resolución. Para esta situación, necesitará una imagen diferente de 9 parches con menos esquinas redondeadas, que se vean mejor en esa resolución.

Entonces, la respuesta final es, realmente depende de su imagen. Si puede crear una imagen de 9 parches que se ve bien en todas las densidades, mejor que usarla, ya que solo necesita una imagen para manejar todas las densidades. Pero si no se ve bien, debido a esquinas, degradados o lo que sea, entonces necesitará una imagen de 9 parches para cada densidad de pantalla.

Esperemos que esté más claro ahora.

+0

si la imagen es un png normal y no un png de 9 ppp, ¿la imagen seguirá escalada o el 9patch es un requisito realmente difícil para cualquier funcionalidad de escala? – Vass

+1

@Vass La imagen se escalará si su vista tiene un tamaño más grande que el tamaño de la imagen. Pero la imagen de 9 parches se usa para guardar desde riping. – AB1209

+0

@ AB1209, ¿puede decirme qué quiere decir con "salvar de riping"? – Vass

2

de la documentación: nine patch

Un gráfico NinePatchDrawable es una imagen de mapa de bits estirable, que Android va a cambiar automáticamente el tamaño para acomodar el contenido de la vista en la que se han colocado como el fondo. Un ejemplo de uso de un NinePatch son los fondos utilizados por los botones estándar de Android: los botones deben estirarse para acomodar cadenas de varias longitudes. Un drawable NinePatch es una imagen PNG estándar que incluye un borde adicional de 1 píxel de ancho. Debe guardarse con la extensión .9.png y guardarse en el directorio res/drawable/de su proyecto.

la respuesta es no. que nueve remiendos escalará entre el tamaño de pantalla diferente

+4

Eso no es del todo correcto Sí, el parche nueve escalará pero aún debe proporcionar imágenes ldpi/mdpi/hdpi porque las partes que no se escalan también deben tener el tamaño correcto. –

+0

Pero, ¿qué hay de las densidades de los 2 diferentes? ¿Debo también crear imágenes de 9 páginas de alta y baja densidad? – AB1209

+4

@ AB1209 No TIENE que hacerlo, pero puede hacerlo si descubriera que sus piezas NinePatch no se escalan bien. – rf43

0

La respuesta corta es SÍ. Marque esta :

Por defecto, Android escalas de sus dibujables de mapa de bits (.png, .jpg y .gif archivos) y Nueve-Patch (dibujables .9.png archivos) para que se prestan en el tamaño físico apropiada en cada dispositivo. Por ejemplo, si su aplicación proporciona esquemas de mapas de bits solo para la línea base, densidad de pantalla media (mdpi), el sistema los amplía cuando están en una pantalla de alta densidad , y los escala cuando está en una pantalla de baja densidad. Esta escala puede causar artefactos en los mapas de bits . Para asegurarse de que sus mapas de bits se vean mejor, debe incluir versiones alternativas en diferentes resoluciones para diferentes densidades de pantalla.

from Android Developer Official Doc

Cuestiones relacionadas