2233

の真ん中にTextView正確に表示されるように、テキストを水平方向と垂直方向の中央に配置するにはどうすればよいですか?TextViewAndroid

4

70 に答える 70

3323

XML レイアウトを使用していると仮定しています。

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

重力を使用することもcenter_verticalcenter_horizontal必要に応じて使用することもできます。

@stealthcopter が Java でコメントしたように: .setGravity(Gravity.CENTER);.

Kotlin ユーザーの場合は、.gravity = Gravity.CENTER

于 2009-01-11T01:53:17.393 に答える
471
android:gravity="center" 

これはトリックを行います

于 2010-02-08T22:54:29.500 に答える
312

以下を使用して動的に設定することもできます。

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2009-11-21T12:25:56.413 に答える
122
android:layout_centerInParent="true"

これは、レイアウトの高さと幅が wrap_content に設定されている RelativeLayout で使用すると機能します。

于 2011-11-11T00:58:08.577 に答える
87

次の組み合わせも使用できます。

android:gravity="left|center"

次に、テキストビューの幅が「fill_parent」より大きい場合、テキストは左に配置されます (重力が「中央」にのみ設定されている場合のように中央揃えにはなりません)。

于 2013-01-01T20:11:10.153 に答える
59

重力を適用する:

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

垂直の場合:

txtView.setGravity(Gravity.CENTER_VERTICAL);

XML の場合:

<TextView      
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:text="@string/Hello_World"        
/>
于 2013-05-30T05:34:15.567 に答える
44

これには 2 つの方法があります。

XML コードの最初のコード。Gravity属性に注意する必要があります。この属性は、グラフィック エディターにもあります。XML EDITOR よりも簡単かもしれません。

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

特定のシナリオでは、重力の値は次のようになります。

center_vertical|center_horizontal

グラフィカル エディターでは、すべての可能な値が見つかり、その結果も表示されます。

于 2014-10-17T12:11:09.683 に答える
41

TableLayoutを使用している場合は、TableRowsの重力も中央に設定してください。そうしないと動作しません。少なくとも、TableRowの重力を中央に設定するまでは機能しませんでした。

たとえば、次のようになります。

<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>
于 2011-05-13T11:57:15.410 に答える
39

次のようにTextView Gravity (Center Horizo​​ntal & Center Vertical)を設定する必要があります。

android:layout_centerHorizontal="true"   

android:layout_centerVertical="true"

そして動的に使用:

textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2012-05-15T05:03:02.320 に答える
34

私の意見では、

android:gravity="center"

よりも良い、

android:layout_centerInParent="true"

どちらが優れているか、

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

少なくともテキストの書式設定には。

于 2012-07-16T04:28:43.760 に答える
32

線形レイアウトの場合: XML では、次のようなものを使用します。

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

実行時にこれを行うには、アクティビティで次のようなものを使用します

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

相対レイアウトの場合: XML では、次のようなものを使用します

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

実行時にこれを行うには、アクティビティで次のようなものを使用します

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);
于 2015-01-03T03:58:38.767 に答える
25

XML ファイルで使用します。

レイアウトファイル

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

また:

これをJavaクラス内で使用します

TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2013-10-04T17:18:18.487 に答える
20

TextView's高さと幅がの場合wrap content、テキストはTextView常に中央に配置されます。ただし、TextView's幅がmatch_parentで高さが である場合、match_parentまたはwrap_content以下のコードを記述する必要があります。

RelativeLayoutの場合:

<?xml version="1.0" encoding="utf-8"?>
<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>

LinearLayoutの場合:

<?xml version="1.0" encoding="utf-8"?>
<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>
于 2015-12-17T06:12:50.103 に答える
14

で、それはそれRelativeLayoutでいいでしょう。

そしてButton、あなたが追加できるものは何でも。

以下は私にとってうまく機能します。

<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>
于 2012-11-21T03:15:44.947 に答える
11

最も簡単な方法(驚くべきことにコメントでのみ言及されているため、回答として投稿している理由)は次のとおりです。

textview.setGravity(Gravity.CENTER)
于 2015-12-15T12:38:02.590 に答える
11

gravityテキストビューの をに設定するだけですCENTER

于 2013-04-02T03:34:18.213 に答える
10

TableLayout の TableRow でテキストを中央に配置しようとしている場合、これをどのように達成したかを次に示します。

<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>
于 2012-07-15T02:14:08.470 に答える
10

相対レイアウトを使用している場合:

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

LinearLayout を使用している場合

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/stringname"
    android:layout_gravity="center"/>
于 2015-11-15T06:33:26.730 に答える
10

この方法を試してください、うまくいきます

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center">
  
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAlignment="center"/>

</LinearLayout>
于 2016-06-17T18:29:16.087 に答える
4

中央のテキスト

<LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_height="wrap_content">
    <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" />
</LinearLayout>

linearlayout 内に textview がある場合は、両方の重心を中央に設定する必要があります

于 2016-09-04T19:33:07.180 に答える
4

このようにレイアウトファイルで TextView を定義するだけで、本当にそれを行う必要があるとは思いません

<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>
于 2017-01-23T12:09:05.647 に答える
4

android:gravity="center_horizontal"テキストを水平方向に中央揃えにします。 android:gravity="center_vertical"テキストを垂直方向に中央揃えにします。 android:gravity="center"テキストを垂直方向と水平方向の両方で中央揃えにします。

<TextView
        android:layout_width="match_parent"
        android:gravity="center_horizontal|center_vertical"
        android:layout_height="match_parent" />
于 2016-05-20T10:18:11.030 に答える
3

レイアウト ファイルの重力属性を次のように設定します。 android:gravity="center"

于 2016-08-17T22:29:19.987 に答える
2

この方法を試しましたか?

<TextView
android:id="+@id/txtVw"
android:gravity="center"
/>
于 2014-03-13T12:57:54.423 に答える
2

以下のコードをxmlで使用してください。私にとってはうまくいきました。中央になる向きを変更できます

<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>
于 2016-12-07T10:26:56.043 に答える
2

コトリンの場合:

TextViewfrom コードを中央に配置する場合:

textView.gravity = Gravity.CENTER

horizontally中央揃えにしたい場合:

textView.gravity = Gravity.CENTER_HORIZONTAL

または、vertically中央:

textView.gravity = Gravity.CENTER_VERTICAL
于 2020-08-17T08:49:26.877 に答える
1

これを試して :

<TextView  
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center"
/>
于 2017-09-20T03:34:29.733 に答える
1

経由 。xmlファイルの重力は次のように中央に設定できます

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

Java経由で次の方法で特定の問題を解決できます

textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2018-03-03T19:33:56.927 に答える
1

次のように Gravity を設定する必要があります。

(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
于 2019-02-07T04:24:52.833 に答える
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" />
于 2016-07-20T06:27:42.590 に答える