Cum pot centrul text orizontal și vertical într-un TextView?

Cum pot centra textul pe orizontală și pe verticală într-un TextView, așa că se pare că exact în mijlocul TextView în "Android"?

Comentarii la întrebare (2)
Soluția

Am'm presupunând că're folosind XML layout.

Puteți folosi, de asemenea, gravitatea center_vertical " sau " center_horizontal în funcție de nevoie de dumneavoastră.

și ca @stealthcopter comentat în java: .setGravity(Gravitația.CENTER);

Comentarii (14)
android:gravity="center" 

Acest lucru va face truc

Comentarii (5)

De asemenea, puteți configura dinamic folosind:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Comentarii (4)
android:layout_centerInParent="true"

Aceasta funcționează atunci când este utilizat cu un RelativeLayout unde layout's înălțimea & lățime sunt setate pentru a wrap_content.

Comentarii (2)

De asemenea, puteți utiliza combinația:

android:gravity="left|center"

Apoi, dacă textview lățimea este mai mare decât "fill_parent" textul va mai fi aliniat la stânga (nu este centrat și cu gravitate stabilite numai pentru a "center").

Comentarii (0)

Aplica gravitate:

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

Vertical:

txtView.setGravity(Gravity.CENTER_VERTICAL);

În XML:

Comentarii (0)

Există două moduri de a face acest lucru.

Primul din codul XML. Ai nevoie să acorde o atenție la "gravității" Atribut. De asemenea, puteți găsi acest atribut în Editorul Grafic; acesta poate fi mai ușor decât XML EDITOR.

Pentru scenariu specific, valorile de greutate va fi:

center_vertical|center_horizontal

În editorul grafic, veți găsi toate valorile posibile, chiar și a vedea rezultatele.

Comentarii (0)

Dacă utilizați TableLayout asigurați-vă că pentru a seta gravitatea TableRows la centru, de asemenea. În caz contrar, acesta nu va funcționa. Cel puțin nu't de lucru cu mine, până când am stabilit gravitatea TableRow la centru.

De exemplu, ca aceasta:



Comentarii (1)

Aveți nevoie pentru a seta TextView Gravitație (Centru Orizontal & Centru Vertical) astfel:

android:layout_centerHorizontal="true"   

și

android:layout_centerVertical="true"

Și dinamic folosind:

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

În opinia mea,

android:gravity="center"

este mai bine decât,

android:layout_centerInParent="true"

care este mai bună decât,

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

cel puțin pentru formatarea textului.

Comentarii (0)

Pentru Aspect Liniar: În XML folosi ceva de genul asta

Pentru a face acest lucru la timp a alerga folosi ceva de genul asta în activitatea dvs.

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

Pentru Raport de Aspect: în XML folosi ceva de genul asta

Pentru a face acest lucru la timp a alerga folosi ceva de genul asta în activitatea dvs.

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);
Comentarii (0)

Utilizarea în fișierul XML.

Layout fișier

sau:

Utilizați acest lucru în interiorul clasei Java

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

Utilizați această pentru aspect relativ

android:layout_centerInParent="true"

și pentru alte aspect

android:gravity="center" 
Comentarii (0)

Dacă TextView's înălțime și lățime sunt folie de conținut apoi textul în TextView fie mereu centrat. Dar dacă TextView's lățime match_parent și înălțimea este de `match_parent " sau "wrap_content "" atunci trebuie să scrie codul de mai jos:

Pentru RelativeLayout:

<?xml version="1.0" encoding="utf-8"?>




Pentru LinearLayout:

<?xml version="1.0" encoding="utf-8"?>




Comentarii (0)

În timp ce folosind gravitația lucrează pentru TextView, acolo's o metodă alternativă puse în aplicare în API de nivel 17 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

Don't știu diferența, dar funcționează prea. Cu toate acestea numai pentru nivelul API 17 sau mai mare.

Comentarii (1)

În RelativeLayout, va fi frumos cu ea.

Și încă un "Buton" și orice altceva vă puteți adăuga.

Următoarele funcționează bine pentru mine.




        ...other button or anything else...

Comentarii (0)

Cel mai simplu mod (care este surprinzator de menționat doar în comentarii, prin urmare, de ce am posta ca un răspuns) este:

textview.setGravity(Gravity.CENTER)
Comentarii (0)

Puteți seta doar "gravității" de textview în "CENTRU".

Comentarii (0)

Dacă sunteți încercarea de a centrul de text pe un TableRow într-un TableLayout, aici este modul în care am realizat acest lucru:



Comentarii (0)

Aici este răspunsul meu că am folosit în aplicația mea. Acesta arată textul în centrul ecranului.

Comentarii (0)