alinear el centro de texto con Android


Sé que suena fácil. Necesito poner un texto en el centro, pero cuando el texto es demasiado largo necesita ir por debajo, pero aún así alinearse en el centro de mi xml.

Aquí está mi código:

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_centerHorizontal="true"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

Pongo paddingTop y Bottom porque necesito algo de espacio. PD: Mi código es más grande; está en un RelativeLayout.

Author: Carl Manaster, 2011-09-07

6 answers

Establezca también el parámetro android:gravity en TextView a center.

Para probar los efectos de diferentes parámetros de diseño, recomiendo usar diferentes colores de fondo para cada elemento, para que pueda ver cómo cambia su diseño con parámetros como gravity, layout_gravity u otros.

 334
Author: peter.bartos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-06 21:29:42

Use de esta manera

txt.setGravity(Gravity.CENTER);
 23
Author: bhargavkumar040,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-02 15:39:05

Use de esta manera en xml

   <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Time is precious, so love now."
        android:gravity="center"
        android:textSize="30dp"
        android:textColor="#fff"
        />
 15
Author: sakshi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-09 06:07:33

Puedes usar lo siguiente:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">

 <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Your text"
        android:typeface="serif" />
</LinearLayout>

El layout debe ser relativo para que se utilice la propiedad "center".

 5
Author: gsb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-23 21:14:29

Agregando android:gravity="center" en su TextView hará el truco (sea el diseño padre es Relative/Linear)!

Además, debe evitar usar dp para el tamaño de fuente. Usa sp en su lugar.

 4
Author: Divya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-24 08:43:20

Agregue layout_gravity y gravity con el valor central en TextView

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />
 1
Author: Mubin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-30 07:22:41