どのように私はで水平方向および垂直方向にテキストを中央んTextView
、それは正確に中央に表示されますので、こと、TextView
でAndroid
?
どのように私はで水平方向および垂直方向にテキストを中央んTextView
、それは正確に中央に表示されますので、こと、TextView
でAndroid
?
回答:
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);
android:gravity="center"
)。それでも画面の左端に表示されます。:(
android:layout_gravity="center"
。
android:gravity="center"
これはトリックを行います
以下を使用して動的に設定することもできます。
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
これは、レイアウトの高さと幅がwrap_contentに設定されているRelativeLayoutで使用すると機能します。
TextView
。テキストは全幅で複数行になり、内で左揃えになりTextView
ます。ディスプレイでは左揃えで表示されます。他の回答で指定されている「重力」を使用する必要があります。
重力をかける:
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エディターよりも簡単かもしれません。
<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を使用している場合は、TableRowの重力も中央に設定してください。そうしないと機能しません。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重力(中央水平&中央垂直)を設定する必要があります。
android:layout_centerHorizontal="true"
そして
android:layout_centerVertical="true"
そして動的に使用する:
textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
layout_centerhorizontal
とlayout_centervertical
によってlayout_centerHorizontal
、およびlayout_centerVertical
(「H」および「V」大文字に、それ以外の場合は作業を習慣)。
線形レイアウトの場合: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);
これを相対的なレイアウトに使用する
android:layout_centerInParent="true"
その他のレイアウトの場合
android:gravity="center"
場合は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>
TextViewで重力を使用すると機能しますが、APIレベル17で実装された別の方法があります-
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
違いはわかりませんが、うまくいきます。ただし、APIレベル17以上のみ。
では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>
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>
使用する android:textAlignment="center"
<TextView
android:text="HOW WAS\nYOUR\nDAY?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/textView5"
/>
これが私がアプリで使用した私の答えです。画面中央にテキストを表示します。
<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" />
相対レイアウトを使用している場合:
<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"/>
単に、XMLファイルで、textviewの重力を中央に設定します。
<TextView
android:gravity="center" />
TextViewの高さと幅は折り返しコンテンツであり、textview内のテキストは常に中央に配置され、次を使用して親レイアウトの中央に配置されます。
<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>
LinearLayoutの場合もコードは同じです。
<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>
そして文法的に親はRelativeLayout Javaコードですこれは実行時にこれをあなたの活動でこのようなものを使用します
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メソッド01
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@strings/text"
/>
XMLメソッド02
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@strings/text"
/>
XMLメソッド03
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center"
android:text="@strings/text"
/>
XMLメソッド04
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="@strings/text"
/>
Javaメソッド01
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
Javaメソッド02
textview.setGravity(Gravity.CENTER);
Javaメソッド03
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
TextView重力は、親レイアウトに従って機能します。
LinearLayout:
LinearLayoutを使用すると、2つの重力属性android:gravityとandroid:layout_gravityが見つかります
android:gravity:TextViewの内部テキストのレイアウト部分を表し、android:layout_gravity:親ビューのTextView位置を表します。
テキストを水平方向および垂直方向の中央に設定する場合は、以下のコードを使用してください
<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:
RelativeLayoutを使用すると、TextViewの以下のプロパティを使用できます
android:gravity = "center":TextViewのテキストセンター。
android:gravity = "center_horizontal"内部テキストを水平方向に中央揃えにする場合。
android:gravity = "center_vertical"垂直方向に中央揃えにする場合は、内部テキスト。
android:layout_centerInParent = "true"の場合、TextViewを親ビューの中央に配置します。android:layout_centerHorizontal = "true":TextViewを親ビューの水平方向の中央に配置する場合。android:layout_centerVertical = "true"の場合、TextViewを親ビューの垂直方向の中央に配置します。
<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>
この方法を試してください、それは動作します
<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>