2011-03-11 13 views
6

Estoy creando un botón personalizado. Quiero establecer la posición del texto en el botón.Alineación de texto en el botón

  • Tengo dos imágenes de fondo para el botón (button_off y button_on) primero es para el botón normal y el segundo es para el estado onFocus/onPressed.

enter image description here enter image description here

  • ahora tengo que poner el texto en el botón a continuación, que debe ser similar:

enter image description here enter image description here

pero soy incapaz de establecer la exacta posición del texto en esta imagen del botón de fondo. Comparta su sugerencia para resolver este problema.

+0

siga este enlace [botones] (http://www.androidpeople.com/button), u conseguirá responder aquí. y navegar a través de este sitio web aprenderá mucho – Prachur

+0

gracias es un enlace útil. –

+2

No puedo encontrar la respuesta en la página vinculada. Y además, creo que es un mal estilo publicar una colección de enlaces/artículos como respuesta a una pregunta específica. Si la respuesta se puede encontrar en algún lugar entre los artículos, simplemente enlace directamente al artículo, al menos. – Hinton

Respuesta

3

Puede intentar utilizar la imagen de 9 parches como fondo. Más información sobre esto aquí: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

+0

Yo en segundo lugar. 9-parche es lo primero que se le viene a la mente. – trgraglia

+0

Pero como puede ver en ese botón, el texto de la imagen no está en el centro de Button. eso es 5 píxeles más que el centro. Entonces, ¿cómo hacer eso? –

+0

Cuando usa 9-patch como fondo, manualmente (con la herramienta "draw9patch" de Google) define el área que es estirable y el área donde aparecerá su texto. Creo que debería resolver tu problema. – sergeytch

1

¡Alinee el texto, use la opción de gravedad! o tratar con el acolchado

+0

podemos usar el relleno solo para el diseño, no para el texto. al establecer la gravedad, podemos establecer solo la alineación izquierda/derecha/superior/inferior/central. pero quiero establecer texto de 5 píxeles más que centrar ... –

+0

¡Puedo usar relleno incluso para texto! – sat

0

algunas maneras:

  1. definir un botón y tratar android:drawableStart
  2. botón de extensión y se dibuja
  3. intento de definir una LinearLayout que sostienen un texto y una imagen con un fondo de su botón, establecer los dos de peso de 1 y ponerlos en otro LinearLayout y hacerlos onClick no puedo asegurar 3 funcionará sin un retoque o dos, pero vale la pena intentarlo
1
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@android:drawable/arrow_down_float" 
    android:background="@drawable/btn_all_bg" 
    android:text="All"> 
Button> 

Puede utilizar el drawableLeft/derecha/arriba/abajo para agregar icono en un botón y el texto podría ajustar automáticamente.

+0

manera mejor y más fácil. gracias por la respuesta –

3

Puede establecer estas propiedades en el archivo XML, `

<Button 
    android:id="@+id/button1" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:drawablePadding="5dp" 
    android:drawableLeft="@android:drawable/ic_lock_lock" 
    android:text="All" 
    android:gravity="center"/> 

`

0

Usted puede utilizar el diseño como un botón de style="@android:style/Widget.Button", y configurarlo como desee.

Pega esto en su archivo xml:

<LinearLayout 
android:id="@+id/button" 
style="@android:style/Widget.Button" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="2dp" 
    android:text="TextView" /> 

</LinearLayout> 
Cuestiones relacionadas