2011-10-27 8 views
5

Estoy creando una aplicación para Android, y tengo un botón con una imagen de fondo personalizada detrás. La imagen de fondo es solo un rectángulo, pero ahora el texto del botón no parece estar centrado verticalmente. Aquí está mi xml para el botón:El texto del botón no se centra verticalmente en el botón

<Button 
android:id="@+id/save_to_list" 
android:layout_below="@+id/info_pic" 
android:text="SAVE TO LIST" 
android:textColor="@android:color/white" 
android:layout_centerHorizontal="true" 
android:layout_gravity="center_horizontal" 
android:layout_width="260dp" 
android:layout_height="35dp" 
android:layout_marginTop="15dp" 
android:layout_marginBottom="15dp"></Button> 

y establece el fondo aquí:

ImageView button_bg = (ImageView)findViewById(R.id.button_background); 
savetolist_button.setBackgroundDrawable(button_bg.getDrawable()); 

¿Hay un dónde cambiar la posición del texto dentro de un botón?

Respuesta

12

android:layout_gravity define la alineación del diseño dentro de su elemento principal. Para alinear el texto dentro del botón que debe android:gravity, por ejemplo

<Button 
    ... 
    android:gravity="center" 
    ...> 
</Button> 
1

Es probable que el texto tenga algo de relleno incorporado en la fuente como parte de cada letra, y esa es la razón por la que el texto se empuja en una dirección. Establezca el layout_height en "wrap_content" y su texto ahora debe centrarse correctamente.

0

Me pareció mejor utilizar una imagen de 9 parches para un fondo rectangular en lugar de un drawable xml.

4

Su botón es demasiado corta para ajustar el texto correctamente. Aumenta el layout_height y el texto debe estar centrado.

0

Puede establecer la gravedad del centro:

android:gravity="center" 
Cuestiones relacionadas