studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android gravity

para - manual de programacion android pdf



Botón central de android texto (5)

Mi pregunta es muy simple. ¿Cómo centrar el texto en un botón en Android? Intenté establecer el relleno en 0, la gravedad en el centro, pero el resultado cuando lo ejecuto aún es que el texto está centrado horizontalmente pero no vertical. El texto está 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 hago esto:

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 pongo esto:

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

El resultado es una mala alineación vertical.


Es muy fácil, pones esto:

android:textAlignment="gravity"

Este trabajo cuando tienes 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 especifica gravedad = "centro" se verá así. En el diseñador de diseños xml, parecerá que 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 se muestra bien en el centro. (correcto)


Su diseño existente no puede esperar centrar el texto debido a los tamaños que ha seleccionado. Ha establecido la altura del botón a 30dp y su tamaño de texto es 50dp , y por alguna razón, Android no puede lidiar con eso y centrar el texto. Si hace que su botón sea más grande o que su texto sea más pequeño, verá que el centrado funciona.


También puedes usar números negativos en setPadding. Esto puede ayudar si su fuente es grande y su botón es pequeño. Intente también establecer la parte superior o inferior en un número más negativo si aún 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 funciono para mi