texto studio poner linearlayout como centro centrar centrado alinear android textview

android - studio - ¿Cómo centrar el texto horizontal y verticalmente en un TextView?



como centrar un texto en un textview android studio (30)

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


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


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


Como muchas respuestas sugieren arriba funciona bien.

android:gravity="center"

Si quieres centrarlo solo verticalmente:

android:gravity="center_vertical"

o simplemente horizontalmente:

android:gravity="center_horizontal"


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.


Hay dos maneras de hacer esto.

El primero en el código XML. Necesitas 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 de 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 sus resultados.


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 forma más sencilla (que, sorprendentemente, solo se menciona en los comentarios, por lo tanto, la razón por la que publico como respuesta) es:

textview.setGravity(Gravity.CENTER)


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.


Para el diseño lineal: 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 hacer esto en tiempo de ejecución, use algo como esto en su actividad

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

Para Relative Layout: en XML usa 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 hacer 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);


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á intentando centrar el texto en una TableRow en un TableLayout, así es como 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>


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


Si la altura y el ancho de TextView''s son wrap content TextView entonces el texto dentro de TextView siempre estará centrado. Pero si el ancho de match_parent es match_parent y height es match_parent o wrap_content entonces debes 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>


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


Supongo que estás utilizando un diseño XML.

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

También puede usar la gravedad center_vertical o center_horizontal acuerdo con su necesidad.

y como @stealthcopter comentó en java: .setGravity(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 el siguiente código en xml. Me funcionó. Puede cambiar la orientación 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>


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


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

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


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


android:layout_centerInParent="true"

Esto funciona cuando se utiliza con un RelativeLayout donde la altura y el ancho del diseño se configuran en wrap_content.