Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo centrar el texto horizontal y verticalmente en un TextView en Android?

¿Cómo puedo centrar el texto horizontal y verticalmente en un TextView en Android, para que aparezca exactamente en el centro de la TextView ?

  • Android: agregar borde alrededor de textview
  • Cómo obtener líneas máximas de texto
  • Actualizar TextView cada segundo
  • Borde (como sombra) sólido y grande en TextView Android
  • Destacando el color del texto usando Html.fromHtml () en Android?
  • Cómo dibujar un TextView en un mapa de bits (sin nunca ser dibujado en la pantalla)
  • 30 Solutions collect form web for “¿Cómo centrar el texto horizontal y verticalmente en un TextView en Android?”

    Supongo que está utilizando el diseño XML.

     <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/**yourtextstring**" /> 

    Y como @stealthcopter comentó en java: .setGravity(Gravity.CENTER);

     android:gravity="center" 

    Esto hará el truco

    También puede configurarlo dinámicamente usando:

     textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 
     android:layout_centerInParent="true" 

    Esto funciona cuando se utiliza con un RelativeLayout donde la altura y el ancho del diseño están definidos como wrap_content.

    También puede utilizar la combinación:

     android:gravity="left|center" 

    Entonces, si el ancho de la vista de texto es más que "fill_parent", el texto seguirá alineado a la izquierda (no centrado, ya que la gravedad sólo está ajustada a "center").

    Aplicar gravedad:

     TextView txtView = (TextView) findViewById(R.id.txtView); txtView.setGravity(Gravity.CENTER_HORIZONTAL); 

    Para vertical:

     txtView.setGravity(Gravity.CENTER_VERTICAL); 

    En XML:

     <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:text="@string/Hello_World" /> 

    Si está utilizando TableLayout asegúrese de establecer la gravedad de los TableRows para centrar, también. De lo contrario, no funcionará. Al menos no funcionó conmigo hasta que puse la gravedad del TableRow en el centro.

    Por ejemplo, como esto:

     <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"> <TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView> </TableRow> 

    Es necesario configurar TextView Gravity (Centro Horizontal y Vertical Centro) de la siguiente manera:

     android:layout_centerHorizontal="true" 

    y

     android:layout_centerVertical="true" 

    Y dinámicamente usando:

     textview.setGravity(Gravity.CENTER); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

    Hay dos maneras de hacer esto.

    La primera en el código XML. Es necesario prestar atención en el atributo de Gravity . También puede encontrar este atributo en el Editor gráfico; Puede ser más fácil que el EDITOR XML.

     <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical|center_horizontal" android:text="Your Text" /> 

    Para su escenario específico, los valores de gravedad serán:

     center_vertical|center_horizontal 

    En el editor gráfico encontrarás todos los valores posibles, incluso verás sus resultados.

    En mi opinión,

     android:gravity="center" 

    es mejor que,

     android:layout_centerInParent="true" 

    Que es mejor que,

     android:layout_centerHorizontal="true" android:layout_centerVertical="true" 

    Al menos para el formato de texto.

    Para Linear Layout: En XML use algo como esto

     <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical|center_horizontal" android:text="Your Text goes here" /> 

    Para hacerlo en tiempo de ejecución, usa algo como esto en tu actividad

     TextView textView1 =(TextView)findViewById(R.id.texView1); textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

    Para el diseño relativo: en XML use algo como esto

     <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerInParent="true" android:text="Your Text goes here" /> 

    Para hacerlo en tiempo de ejecución, usa algo como esto en tu actividad

     TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

    Utilizar en el archivo XML.

    Archivo de diseño

     <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:text="@string/stringtext"/> 

    o:

    Utilícelo dentro de la clase Java

     TextView textView =(TextView)findViewById(R.id.texviewid); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

    Use esto para el diseño relativo

     android:layout_centerInParent="true" 

    Y para otro diseño

     android:gravity="center" 

    Mientras se utiliza la gravedad funciona para TextView, hay un método alternativo implementado en el nivel API 17 –

     textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); 

    No sé la diferencia, pero también funciona. Sin embargo, sólo para API de nivel 17 o superior.

    En RelativeLayout , será agradable con él.

    Y otro Button y cualquier otra cosa que puedas agregar.

    Lo siguiente funciona muy bien para mí.

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#ff314859" android:paddingLeft="16dp" android:paddingRight="16dp"> <TextView android:id="@+id/txt_logo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="your text here" android:textSize="30dp" android:gravity="center"/> ...other button or anything else... </RelativeLayout> 

    La manera más fácil (que es sorprendentemente sólo se menciona en los comentarios, por lo que estoy publicando como una respuesta) es:

     textview.setGravity(Gravity.CENTER) 

    Sólo puede establecer la gravity de su texto en CENTER .

    Si está intentando centrar el texto en un TableRow en un TableLayout, aquí es cómo logré esto:

     <TableRow android:id="@+id/rowName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dip" > <TextView android:id="@+id/lblSomeLabel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:layout_width="0dp" android:layout_weight="100" android:text="Your Text Here" /> </TableRow> 

    Aquí está mi respuesta que había utilizado en mi aplicación. Muestra texto en el centro de la pantalla.

     <TextView android:id="@+id/txtSubject" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/subject" android:layout_margin="10dp" android:gravity="center" android:textAppearance="?android:attr/textAppearanceLarge" /> 

    Si está utilizando Disposición relativa:

      <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/stringname" android:layout_centerInParent="true"/> 

    Si está utilizando LinearLayout

     <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/stringname" android:layout_gravity="center"/> 

    Como muchas respuestas sugieren que funciona bien.

     android:gravity="center" 

    Si desea centrarlo sólo verticalmente:

     android:gravity="center_vertical" 

    O simplemente horizontalmente:

     android:gravity="center_horizontal" 

    Simplemente, en su archivo XML, establezca la gravedad textview para centrar:

     <TextView android:gravity="center" /> 

    La altura y el ancho de TextView son el contenido de ajuste, entonces el texto dentro de la vista de texto siempre se centrará, a continuación, hacer centro en su diseño principal mediante:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Hello.."/> </RelativeLayout> 

    Para LinearLayout también el código es el mismo:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello.."/> </LinearLayout> 

    Y pro-gramaticalmente padre es RelativeLayout código java esto en tiempo de ejecución use algo como esto en su actividad

     TextView textView1 =(TextView)findViewById(R.id.texView1); RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams(); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); textView1.setLayoutParams(layoutParams); 

    Si la altura y el ancho de TextView's son wrap content , el texto dentro de TextView siempre estará centrado. Pero si el ancho de match_parent es match_parent y la altura es match_parent o wrap_content entonces tienes que escribir el siguiente código:

    Para RelativeLayout:

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Hello World" /> </RelativeLayout> 

    Para LinearLayout:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Hello World" /> </LinearLayout> 

    android:gravity="center_horizontal" para alinear el texto horizontalmente. android:gravity="center_vertical" para alinear el texto android:gravity="center_vertical" verticalmente. android:gravity="center" para alinear el centro del texto tanto vertical como horizontalmente.

     <TextView android:layout_width="match_parent" android:gravity="center_horizontal|center_vertical" android:layout_height="match_parent" /> 

    Intenta de esta manera, funcionará

     <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center_horizontal|center_vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" /> </LinearLayout> 

    Utilizar el código a continuación en xml que trabajó para mí se puede cambiar la orientación que será en el centro

     <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:background="@color/colorPrimaryDark" android:gravity="center" android:layout_height="wrap_content"> <TextView android:id="@+id/id_text" android:layout_width="wrap_content" android:textSize="18sp" android:textColor="@android:color/white" android:textStyle="normal" android:layout_height="wrap_content" android:text="centre me"/> </LinearLayout> 

    Puedes hacer esto para centrarse en el texto

     <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" /> 
     <TextView android:id="+@id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" /> 

    ¿Intentaste de esta manera?

     <TextView android:id="+@id/txtVw" android:gravity="center" /> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.