linearlayout - poner texto centrado en android studio




¿Cómo centrar el texto horizontal y verticalmente en un TextView? (20)

Aplicar la 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"        
/>

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


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" />

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>

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 formatear texto.


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>

La altura y el ancho de TextView son contenido de la envoltura, entonces el texto dentro de la vista de texto siempre debe estar centrado, luego centre en su diseño principal usando:

<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 de forma pro-gramática, el padre es RelativeLayout. Este código en tiempo de ejecución usa 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);

La gravedad de TextView funciona según su diseño principal.

LinearLayout :

Si usas LinearLayout, encontrarás dos atributos de gravedad android: gravity y android: layout_gravity

android: gravedad: representa la poción de diseño del texto interno de TextView, mientras que android: layout_gravity: representa la posición de TextView en la vista principal.

Si desea establecer el texto en el centro horizontal y vertical, utilice el siguiente código:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center_horizontal"
        android:layout_gravity="center_vertical"
        android:layout_height="wrap_content"
    />
</LinearLayout>

Relacionamiento relativo :

Usando RelativeLayout puedes usar la propiedad de abajo en TextView

android: gravity = "center" para el centro de texto en TextView.

android: gravity = "center_horizontal" texto interno si quieres centrado horizontalmente.

android: gravity = "center_vertical" texto interno si desea centrado verticalmente.

android: layout_centerInParent = "true" si desea que TextView esté en la posición central de la vista principal. android: layout_centerHorizontal = "true" si desea que TextView esté horizontalmente en el centro de la vista principal. android: layout_centerVertical = "true" si desea que TextView esté verticalmente en el centro de la vista principal.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="300dp"
    android:background="@android:color/background_light"
    android:layout_height="300dp">

    <TextView
        android:layout_width="match_parent"
        android:text="Hello World!"
        android:gravity="center"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content"
    />
</RelativeLayout>

Mientras que el uso de la gravedad funciona para TextView, hay un método alternativo implementado en el nivel 17 de API:

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

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


Podemos lograr esto con estas múltiples formas:

Método XML 01

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:gravity="center_vertical|center_horizontal"
    android:text="@strings/text"
/>

Método XML 02

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@strings/text"
/>

Método XML 03

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

Método XML 04

<TextView  
    android:id="@+id/textView"
    android:layout_height="match_parent"
    android:layout_width="wrap_content" 
    android:layout_centerInParent="true"
    android:text="@strings/text"
/>

Método de Java 01

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

Metodo java 02

textview.setGravity(Gravity.CENTER);

Metodo java 03

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

Puedes hacer esto para centrar el texto.

<TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />

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

Por ejemplo, como este:

<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>

Si está utilizando diseño relativo:

  <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"/>

Simplemente puede establecer la gravity de su vista de texto en CENTER .


Simplemente, en su archivo XML, configure la gravedad de la vista de texto en el centro:

<TextView
    android:gravity="center" />

También puedes configurarlo dinámicamente usando:

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

También puedes utilizar la combinación:

android:gravity="left|center"

Luego, si el ancho de la vista de texto es más que "fill_parent", el texto aún se alineará hacia la izquierda (no centrado, como con la gravedad establecida solo en "center").


Use esto para el diseño relativo

android:layout_centerInParent="true"

y para otro diseño

android:gravity="center" 

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:

Usa esto dentro de la clase Java

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

Debe configurar TextView Gravity (Center Horizontal & Center Vertical) de la siguiente manera:

android:layout_centerHorizontal="true"   

y

android:layout_centerVertical="true"

Y dinámicamente utilizando:

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

android:gravity="center" 

Esto hará el truco





textview