の真ん中にTextView
正確に表示されるように、テキストを水平方向と垂直方向の中央に配置するにはどうすればよいですか?TextView
Android
70 に答える
XML レイアウトを使用していると仮定しています。
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/**yourtextstring**"
/>
重力を使用することもcenter_vertical
、center_horizontal
必要に応じて使用することもできます。
@stealthcopter が Java でコメントしたように: .setGravity(Gravity.CENTER);
.
Kotlin ユーザーの場合は、.gravity = Gravity.CENTER
android:gravity="center"
これはトリックを行います
以下を使用して動的に設定することもできます。
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
これは、レイアウトの高さと幅が wrap_content に設定されている RelativeLayout で使用すると機能します。
次の組み合わせも使用できます。
android:gravity="left|center"
次に、テキストビューの幅が「fill_parent」より大きい場合、テキストは左に配置されます (重力が「中央」にのみ設定されている場合のように中央揃えにはなりません)。
重力を適用する:
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"
/>
これには 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
グラフィカル エディターでは、すべての可能な値が見つかり、その結果も表示されます。
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>
次のようにTextView Gravity (Center Horizontal & Center Vertical)を設定する必要があります。
android:layout_centerHorizontal="true"
と
android:layout_centerVertical="true"
そして動的に使用:
textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
私の意見では、
android:gravity="center"
よりも良い、
android:layout_centerInParent="true"
どちらが優れているか、
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
少なくともテキストの書式設定には。
線形レイアウトの場合: 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);
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);
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>
で、それはそれ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>
最も簡単な方法(驚くべきことにコメントでのみ言及されているため、回答として投稿している理由)は次のとおりです。
textview.setGravity(Gravity.CENTER)
gravity
テキストビューの をに設定するだけですCENTER
。
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>
相対レイアウトを使用している場合:
<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"/>
この方法を試してください、うまくいきます
<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>
<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 がある場合は、両方の重心を中央に設定する必要があります
このようにレイアウトファイルで 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>
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" />
レイアウト ファイルの重力属性を次のように設定します。
android:gravity="center"
この方法を試しましたか?
<TextView
android:id="+@id/txtVw"
android:gravity="center"
/>
以下のコードを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>
コトリンの場合:
TextView
from コードを中央に配置する場合:
textView.gravity = Gravity.CENTER
horizontally
中央揃えにしたい場合:
textView.gravity = Gravity.CENTER_HORIZONTAL
または、vertically
中央:
textView.gravity = Gravity.CENTER_VERTICAL
これを試して :
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
/>
経由 。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);
次のように Gravity を設定する必要があります。
(textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
<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" />