Jak mohu střediska textových horizontálně i vertikálně v TextView?

hlasů
1k

Jak mohu střed text horizontálně i vertikálně v TextView, takže se zdá, přesně ve středu TextViewdo hotelu Android?

Položena 11/01/2009 v 01:27
zdroj uživatelem
V jiných jazycích...                            


65 odpovědí

hlasů
2k

Jsem za předpokladu, že používáte rozložení XML.

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

a jak @stealthcopter komentoval v Javě: .setGravity(Gravity.CENTER);

Odpovězeno 11/01/2009 v 02:53
zdroj uživatelem

hlasů
264

Můžete také nastavit dynamicky pomocí:

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Odpovězeno 21/11/2009 v 13:25
zdroj uživatelem

hlasů
393
android:gravity="center" 

To bude stačit

Odpovězeno 08/02/2010 v 23:54
zdroj uživatelem

hlasů
35

Pokud používáte TableLayout nezapomeňte nastavit závažnost TableRows do centra, taky. Jinak to nebude fungovat. Alespoň to nefunguje se mnou, dokud jsem nastavit závažnost TableRow do centra.

Například takto:

<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>
Odpovězeno 13/05/2011 v 12:57
zdroj uživatelem

hlasů
96
android:layout_centerInParent="true"

Toto funguje při použití s ​​RelativeLayout, kde se výška a šířka rozvržení je nastavena na wrap_content.

Odpovězeno 11/11/2011 v 01:58
zdroj uživatelem

hlasů
33

Je třeba nastavit TextView gravitace (uprostřed horizontálním centrum vertikální) takto:

android:layout_centerHorizontal="true"   

a

android:layout_centerVertical="true"

A dynamicky pomocí:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Odpovězeno 15/05/2012 v 06:03
zdroj uživatelem

hlasů
9

Pokud se snažíte, aby střed textu na TableRow v TableLayout, tady je, jak jsem se toho dosáhnout:

<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>
Odpovězeno 15/07/2012 v 03:14
zdroj uživatelem

hlasů
29

Dle mého názoru,

android:gravity="center"

je lepší než,

android:layout_centerInParent="true"

který je lepší než,

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

alespoň pro formátování textu.

Odpovězeno 16/07/2012 v 05:28
zdroj uživatelem

hlasů
11

V roce RelativeLayout, to bude pěkné s ním.

A další Buttona něco jiného si můžete přidat.

Níže uvedené funguje dobře pro 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>
Odpovězeno 21/11/2012 v 04:15
zdroj uživatelem

hlasů
68

Můžete také použít kombinaci:

android:gravity="left|center"

Pak, když šířka TextView je víc než „fill_parent“ text bude stále zarovnány doleva (ne na střed, jak s gravitací nastaven na „centrum“).

Odpovězeno 01/01/2013 v 21:11
zdroj uživatelem

hlasů
10

Stačí nastavit gravityvašeho TextView do CENTER.

Odpovězeno 02/04/2013 v 04:34
zdroj uživatelem

hlasů
6

Jednoduše řečeno, v souboru XML, nastavte TextView gravitaci do centra:

<TextView
    android:gravity="center" />
Odpovězeno 06/05/2013 v 18:56
zdroj uživatelem

hlasů
44

Naneste gravitace:

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

Pro vertikální:

txtView.setGravity(Gravity.CENTER_VERTICAL);

V XML:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>
Odpovězeno 30/05/2013 v 06:34
zdroj uživatelem

hlasů
9

Tady je moje odpověď, kterou jsem použil v mém app. Ukazuje text středu obrazovky.

<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" />
Odpovězeno 03/06/2013 v 10:54
zdroj uživatelem

hlasů
7

Jako mnoho odpovědí naznačují výše funguje.

android:gravity="center"

Chcete-li jej střed jen ve svislém směru:

android:gravity="center_vertical"

nebo jen horizontálně:

android:gravity="center_horizontal"
Odpovězeno 04/07/2013 v 21:09
zdroj uživatelem

hlasů
14

Při použití gravitace pracuje pro TextView, je tu alternativní metoda implementována v úrovni API 17 -

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

Nevím rozdíl, ale funguje to taky. Avšak pouze pro úroveň API 17 nebo vyšší.

Odpovězeno 24/08/2013 v 21:50
zdroj uživatelem

hlasů
21

Použijte v souboru XML.

Layout file

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

nebo:

Pomocí tohoto uvnitř třídy Java

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Odpovězeno 04/10/2013 v 18:18
zdroj uživatelem

hlasů
18

Použít pro relativní rozvržení

android:layout_centerInParent="true"

a za druhé rozvržení

android:gravity="center" 
Odpovězeno 11/10/2013 v 12:08
zdroj uživatelem

hlasů
2
<TextView
android:id="+@id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
/>
Odpovězeno 19/02/2014 v 13:55
zdroj uživatelem

hlasů
2

Už jste vyzkoušeli tuto cestu?

<TextView
android:id="+@id/txtVw"
android:gravity="center"
/>
Odpovězeno 13/03/2014 v 13:57
zdroj uživatelem

hlasů
32

Existují dva způsoby, jak toho dosáhnout.

První v kódu XML. Musíte dávat pozor na Gravityatribut. Můžete také najít tento atribut v grafickém editoru; to může být jednodušší než XML editoru.

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

Pro konkrétní situaci, budou hodnoty gravitace:

center_vertical|center_horizontal

V grafickém editoru, najdete všechny možné hodnoty, a to i vidět jejich výsledky.

Odpovězeno 17/10/2014 v 13:11
zdroj uživatelem

hlasů
25

Pro lineární rozvržení: V XML použít něco takového

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

Chcete-li to provést v době spuštění něco takového použít ve své činnosti

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

Pro Relativní rozložení: XML použít některé věci, jako je tento

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

Chcete-li to provést v době spuštění něco takového použít ve své činnosti

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);
Odpovězeno 03/01/2015 v 03:58
zdroj uživatelem

hlasů
9

Pokud používáte Relativní rozložení:

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

Pokud používáte LinearLayout

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>
Odpovězeno 15/11/2015 v 06:33
zdroj uživatelem

hlasů
10

Nejjednodušší způsob, jak (což je překvapivě zmíněna pouze v komentářích, tedy důvod, proč jsem vyslání jako odpověď), je:

textview.setGravity(Gravity.CENTER)
Odpovězeno 15/12/2015 v 12:38
zdroj uživatelem

hlasů
11

V případě, že TextView'svýška a šířka jsou wrap contentpotom text v rámci TextViewvždy střed. Ale v případě, že TextView'sšířka match_parenta výška je match_parentnebo wrap_contentpak budete muset psát následující kód:

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

Pro 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>
Odpovězeno 17/12/2015 v 06:12
zdroj uživatelem

hlasů
6

Na TextView je výška a šířka jsou spokojeni zábal pak se text v rámci TextView vždy středem, pak se centrum v jeho mateřské rozložení pomocí:

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

Pro LinearLayout také kód je stejný:

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

a pro-gramaticky nadřazený RelativeLayout kód v jazyce Java tento při běhu použití něco takového ve své činnosti

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);
Odpovězeno 07/03/2016 v 13:42
zdroj uživatelem

hlasů
4

android:gravity="center_horizontal"pro zarovnání textu Center vodorovně. android:gravity="center_vertical"pro zarovnání textu Center ve svislém směru. android:gravity="center"pro zarovnání textu Center vertikálně i horizontálně.

<TextView
        android:layout_width="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_height="match_parent" />
Odpovězeno 20/05/2016 v 10:18
zdroj uživatelem

hlasů
4

Zkuste tímto způsobem, bude to fungovat

<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>
Odpovězeno 17/06/2016 v 18:29
zdroj uživatelem

hlasů
0
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Tours"
        android:id="@+id/textView" />
Odpovězeno 20/07/2016 v 06:27
zdroj uživatelem

hlasů
0

A pro ty, přemýšlel, jak to střed vertikálně ve svém TextView prvkem při zachování jej na levou stranu (horizontálně):

android:gravity="center"
android:textAlignment="viewStart"
Odpovězeno 17/08/2016 v 21:46
zdroj uživatelem

hlasů
0

Nastavte atribut gravitace v souboru s rozložením as android:gravity="center"

Odpovězeno 17/08/2016 v 22:29
zdroj uživatelem

hlasů
2

centrum textu

<TextView
        android:id="@+id/failresults"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="3dp"
        android:gravity="center_vertical|center_horizontal"
        android:text=""
        android:textSize="12sp" />
Odpovězeno 04/09/2016 v 19:33
zdroj uživatelem

hlasů
0
There are 2 ways to do this :

1. From Xml
     use :  
        <TextView
         .........
        android:gravity="center"/>

2. From Java class
    use : 

     [textview].setGravity(Gravity.CENTER);
Odpovězeno 06/10/2016 v 11:08
zdroj uživatelem

hlasů
3

použijte následující kód v xml, že pracoval pro mě, můžete změnit orientaci, že to bude ve středu

<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>
Odpovězeno 07/12/2016 v 10:26
zdroj uživatelem

hlasů
2

Nemyslím si, Vy opravdu potřebujete k tomu, že právě definovat TextView v souboru s rozložením takhle

<RelativeLayout
    android:layout_width="width"
    android:layout_height="height">
    <TextView
        android:id="@+id/yourid"
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your text" />
</RelativeLayout>
Odpovězeno 23/01/2017 v 12:09
zdroj uživatelem

hlasů
1

Pokud pracujete s RelativeLayout, zkuste použít tuto vlastnost uvnitř vaší TextViewznačce:

android:layout_centerInParent= true
Odpovězeno 05/03/2017 v 15:21
zdroj uživatelem

hlasů
1

Použijte android:gravity="center"k vyřešení problému.

Odpovězeno 22/03/2017 v 08:09
zdroj uživatelem

hlasů
6

Můžete to udělat takhle, aby textu na střed

<TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" />
Odpovězeno 30/06/2017 v 09:27
zdroj uživatelem

hlasů
1

Zkuste to :

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
/>
Odpovězeno 20/09/2017 v 03:34
zdroj uživatelem

hlasů
3

TextView gravitace funguje podle vašeho mateřského rozvržení.

LinearLayout :

Používáte-li LinearLayout pak najdete dvě gravitace atribut android: gravitace a Android: layout_gravity

android: hmotnost: představují rozložení lektvar vnitřního textu TextView zatímco android: layout_gravity: představují TextView pozici v nadřízeném pohledu.

zadejte popis obrázku zde

Chcete-li nastavit text, vodorovně a svisle vycentrovat pak pomocí níže kód tohoto

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

Používání RelativeLayout můžete použít níže majetku TextView

android: gravitace = "center" pro textovou centra v TextView.

android: gravitace = „center_horizontal“ vnitřní textu Chcete-li vodorovně na střed.

android: gravitace = „center_vertical“ vnitřní textu Chcete-li svisle na střed.

android: layout_centerInParent = „true“, pokud chcete TextView ve středové poloze nadřízeném pohledu. android: layout_centerHorizontal = „true“, pokud chcete TextView v horizontálním středu nadřízeném pohledu. android: layout_centerVertical = „true“, pokud chcete TextView ve svislém směru středu nadřízeném pohledu.

<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>
Odpovězeno 20/09/2017 v 12:08
zdroj uživatelem

hlasů
0

Můžete střed textového zobrazení pomocí systému Android: gravitace = „center“

Kód vypadá následovně

    <TextView
     android:text="@string/yourText"
     android layout_height="wrap_content"
     android layout_height="wrap_content"
     android:gravity="center" />
Odpovězeno 13/11/2017 v 10:42
zdroj uživatelem