Botón central del texto android

Mi pregunta es muy simple. ¿Cómo centrar el texto en un botón en android? Traté de establecer el relleno a 0, la gravedad al centro, pero el resultado cuando lo ejecuto todavía que el texto está centrado horizontal, pero no vertical. El texto es un poco desplazado a la parte inferior.

<Button android:id="@+id/btnSame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:background="@drawable/layout_button_different" android:gravity="center_vertical|center_horizontal" android:height="30dp" android:padding="0dip" android:text="@string/equals" android:textColor="@drawable/layout_button_different" android:textSize="50dp" android:width="70dp" /> 

Mi ser también relevante: En la actividad lo hago:

 btnEquals.setCompoundDrawablesWithIntrinsicBounds(null,getResources().getDrawable(R.drawable.up2), null, null); btnEquals.setPadding(0, 5, 0, 0); btnEquals.setTextSize(15); 

Esto funciona, pero después de esto establezco esto:

 btnEquals.setCompoundDrawables(null, null, null, null); btnEquals.setPadding(0, 0, 0, 0); 

El resultado es una mala alineación vertical.

El diseño existente no puede centrar el texto debido a los tamaños que ha seleccionado. Has establecido la altura del botón a 30dp y tu texto es 50dp , y por cualquier razón, Android es incapaz de lidiar con eso y centrar el texto. Si usted hace su botón más grande o su texto más pequeño usted verá que el centrar trabaja.

Es muy fácil, usted pone esto:

 android:textAlignment="gravity" 

Este trabajo cuando usted tiene esto:

 android:gravity="center" 

Hay tres sistemas a considerar. El diseñador de diseño xml, el simulador y el teléfono real. El texto en el botón si se especifica gravity = "center" se verá así. En el diseñador de diseño xml se verá como la letra más a la izquierda está en el centro del botón, pero el resto de las letras están a la derecha. (Parece incorrecto) En el simulador, el texto se muestra bien en el centro. (Correcto) En el teléfono, el texto aparece bien en el centro. (correcto)

También puede utilizar números negativos en setPadding. Esto puede ayudar si su fuente es grande y su botón es pequeño. Intente también fijar la parte superior o inferior a un número más negativo si todavía está fuera del centro.

 <Button android:id="@+id/AnswerE" style="@style/defaultbuttonstyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:onClick="AnswerCheck" android:text=" E " android:textStyle="bold" /> 

Esto funcionó para mí

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.