android center - Comment centrer le texte horizontalement et verticalement dans un TextView?




align vertically (25)

Si vous utilisez TableLayout, assurez-vous de placer également la gravité des TableRows au centre. Sinon, cela ne fonctionnera pas. Au moins, ça n'a pas marché avec moi jusqu'à ce que je place la gravité du TableRow au centre.

Par exemple, comme ceci:

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

Comment puis-je centrer le texte horizontalement et verticalement dans un TextView , afin qu'il apparaisse exactement au milieu du TextView dans Android ?


Essayez de cette façon, ça marchera

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

Simplement, dans votre fichier XML, définissez la gravité du texte au centre:

<TextView
    android:gravity="center" />

Vous pouvez également le configurer dynamiquement en utilisant:

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

Pour la disposition linéaire: En XML, utilisez quelque chose comme ça

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

Pour faire cela à l'exécution, utilisez quelque chose comme ça dans votre activité

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

Pour la mise en page relative: en XML, utilisez quelque chose comme ça

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

Pour faire cela à l'exécution, utilisez quelque chose comme ça dans votre activité

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 hauteur et la largeur du TextView's sont wrap content TextView le texte dans TextView toujours être centré. Mais si la largeur de match_parent est match_parent et que height est match_parent ou wrap_content alors vous devez écrire le code ci-dessous:

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

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

Ça fera l'affaire


Utilisez ceci pour la disposition relative

android:layout_centerInParent="true"

et pour d'autre mise en page

android:gravity="center" 

Vous pouvez faire comme ça pour obtenir du texte centré

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

La gravure TextView fonctionne selon la disposition de vos parents.

LinearLayout :

Si vous utilisez LinearLayout alors vous trouverez deux attribut de gravité android: gravity & android: layout_gravity

android: gravity: représente la potion de mise en page du texte interne de TextView alors que android: layout_gravity: représente la position de TextView dans la vue parent.

Si vous souhaitez définir le texte horizontalement et verticalement, utilisez le code ci-dessous

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

RelativeLayout :

Utilisation de RelativeLayout vous pouvez utiliser la propriété ci-dessous dans TextView

android: gravity = "center" pour le centre de texte dans TextView.

android: gravity = "center_horizontal" texte interne si vous voulez horizontalement centré.

android: gravity = "center_vertical" texte interne si vous voulez centré verticalement.

android: layout_centerInParent = "true" si vous voulez que TextView soit en position centrale de la vue parent. android: layout_centerHorizontal = "true" si vous voulez que TextView soit horizontalement au centre de la vue parent. android: layout_centerVertical = "true" si vous voulez que TextView se trouve verticalement au centre de la vue parente.

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

Si vous essayez de centrer du texte sur un TableRow dans un TableLayout, voici comment j'ai réalisé ceci:

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

android:gravity="center_horizontal" pour aligner le texte Centre horizontalement. android:gravity="center_vertical" pour aligner le texte Centre verticalement. android:gravity="center" pour aligner le texte Center verticalement et horizontalement.

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

Vous devez définir TextView Gravity (Centre Horizontal et Centre Vertical) comme ceci:

android:layout_centerHorizontal="true"   

et

android:layout_centerVertical="true"

Et en utilisant dynamiquement:

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

<TextView
android:id="[email protected]/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>

La hauteur et la largeur de TextView sont le contenu d'habillage, puis le texte dans le texte est toujours centré, puis le centre dans sa mise en page parente en utilisant:

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

Pour LinearLayout aussi le code est le même:

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

et parent pro-grammaticalement est le code java RelativeLayout ceci à l'exécution utilise quelque chose comme ça dans votre activité

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

Comme beaucoup de réponses suggèrent ci-dessus fonctionne bien.

android:gravity="center"

Si vous voulez le centrer verticalement:

android:gravity="center_vertical"

ou juste horizontalement:

android:gravity="center_horizontal"

En RelativeLayout , ce sera sympa avec ça.

Et un autre Button et tout ce que vous pouvez ajouter.

Ce qui suit fonctionne bien pour moi.

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

Appliquez la gravité:

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

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

Il y a deux façons de le faire.

Le premier dans le code XML. Vous devez faire attention à l'attribut de Gravity . Vous pouvez également trouver cet attribut dans l'éditeur graphique. cela peut être plus facile que l'EDITEUR XML.

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

Pour votre scénario spécifique, les valeurs de gravité seront:

center_vertical|center_horizontal

Dans l'éditeur graphique, vous trouverez toutes les valeurs possibles, voir même leurs résultats.


Voici ma réponse que j'avais utilisée dans mon application. Il montre du texte au centre de l'écran.

<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 vous utilisez une mise en page relative:

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

Si vous utilisez LinearLayout

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

utiliser le code ci-dessous en XML, il a travaillé pour moi, vous pouvez changer l'orientation, il sera au centre

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

À mon avis,

android:gravity="center"

est mieux que,

android:layout_centerInParent="true"

ce qui est mieux que

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

au moins pour le formatage du texte.


Utilisez dans le fichier XML.

Fichier de mise en page

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

ou:

Utilisez ceci dans la classe Java

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

Vous n'avez pas besoin d'utiliser réellement ScrollView .

Réglez juste le

android:maxLines = "AN_INTEGER"

android:scrollbars = "vertical"

propriétés de votre TextView dans le fichier xml de votre mise en page.

Ensuite, utilisez:

yourTextView.setMovementMethod(new ScrollingMovementMethod());

dans votre code.

Bingo, ça défile!





android textview