example - textview android studio




Come posso centrare il testo orizzontalmente e verticalmente in un TextView? (20)

È necessario impostare TextView Gravity (Center Horizontal e Center Vertical) in questo modo:

android:layout_centerHorizontal="true"   

e

android:layout_centerVertical="true"

E usando dinamicamente:

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

Come faccio a centrare il testo orizzontalmente e verticalmente in un TextView , in modo che appaia esattamente nel mezzo di TextView in Android ?


Applicare la gravità:

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

Per verticale:

txtView.setGravity(Gravity.CENTER_VERTICAL);

In XML:

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

Come molte risposte suggeriscono sopra funziona bene.

android:gravity="center"

Se vuoi centrarlo solo in verticale:

android:gravity="center_vertical"

o solo orizzontalmente:

android:gravity="center_horizontal"

Ecco la mia risposta che avevo usato nella mia app. Mostra il testo al centro dello schermo.

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

In RelativeLayout , sarà bello con esso.

E un altro Button e qualsiasi altra cosa tu possa aggiungere.

Il seguente funziona bene per me.

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

L'altezza e la larghezza di TextView sono il contenuto di avvolgimento, quindi il testo all'interno della vista testo deve sempre essere centrato, quindi creare il centro nel suo layout principale 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>

Anche per LinearLayout il codice è lo stesso:

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

e in modo pro grammatico il genitore è RelativeLayout codice java questo in fase di esecuzione utilizzare qualcosa di simile nella vostra attività

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

Mentre si usa Gravity per TextView, c'è un metodo alternativo implementato nel livello API 17 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

Non so la differenza, ma funziona anche. Tuttavia, solo per livello API 17 o superiore.


Per il layout lineare: in XML usa qualcosa di simile

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

Per farlo in fase di esecuzione, usa qualcosa di simile nella tua attività

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

Per Layout relativo: in XML usa alcune cose come questa

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

Per farlo in fase di esecuzione, usa qualcosa di simile nella tua attività

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

Prova in questo modo, funzionerà

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

Puoi anche configurarlo in modo dinamico usando:

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

Puoi fare così per ottenere il centraggio del testo

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

Puoi semplicemente impostare la gravity della tua visualizzazione di testo in CENTER .


Se si utilizza il layout relativo:

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

Se stai usando LinearLayout

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

Se stai cercando di centrare il testo su un TableRow in un TableLayout, ecco come ho ottenuto questo risultato:

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

Secondo me,

android:gravity="center"

è meglio di,

android:layout_centerInParent="true"

che è meglio di

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

almeno per la formattazione del testo.


Semplicemente, nel tuo file XML, imposta la gravità del testo al centro:

<TextView
    android:gravity="center" />

Usalo per il layout relativo

android:layout_centerInParent="true"

e per altri layout

android:gravity="center" 

Utilizzare nel file XML.

File di layout

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

o:

Usalo all'interno della classe Java

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

android:gravity="center_horizontal" per allineare il testo Centro orizzontalmente. android:gravity="center_vertical" per allineare il testo Centro verticalmente. android:gravity="center" per allineare il testo Centro sia verticalmente che orizzontalmente.

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

android:gravity="center" 

Questo farà il trucco





textview