2011-01-31 9 views
9

Im tratando de crear brindis como control basado en textview, y encontré comportamiento muy extraño de textview en caso de que tenga nueve parches dibujables como fondo.Acolchado alrededor de la vista de texto con fondo de nueve parches no tienen efecto visual

Esta es la definición xml:

<by.pplware.view.QuickInfo 
    android:id="@+id/quickinfo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:padding="20px" 
    android:textSize="20px" 
    android:textStyle="bold" 
    android:typeface="serif" 
    android:background="#FFFF0000" 
/> 

esto es TextView con fondo de color: enter image description here

esto es TextView con el fondo dibujable: enter image description here

Según tengo entendido, en caso de ninepatch el fondo de Android hace que el relleno sea transparente y usa solo dibujar como fondo para el texto. Pero quiero incluir relleno en el área cubierta con fondo ninepatch.

¿Hay alguna solución para este problema?

Respuesta

26

Pruebe cualquiera de estos:

  1. Ajuste el ninepatch fondo a través de la "android: Fondo" propiedad XML en lugar de mediante programación; esto coopera con el relleno definido por XML.
  2. Si necesita establecer el fondo de forma programática, intente volver a establecer el relleno después de establecer el fondo (si establece el relleno y luego establece el fondo, supongo que el relleno definido en el parche nueve lo anula).
  3. Evite todo el problema y simplemente configure las áreas de relleno en su propia imagen ninepatch (es decir, las barras negras derecha e inferior).
+1

Gracias por los comentarios - 1 y 2 realmente ayudan. –

+3

3 es lo mejor que podría decir – kishu27

+1

He trabajado alrededor de esto guardando los valores de relleno antes de configurar los nueve parches y luego restaurar el relleno como se indica en el punto 2 anterior. –

Cuestiones relacionadas