どんセンターテキストを水平方向と垂直方向にTextView?
質問
どんセンター、テキストを水平方向と垂直方向に 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"
これでうまくいきます
次を使用して動的に設定することもできます。
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
これは、レイアウトの高さと&amp;幅はwrap_contentに設定されます。
組み合わせを使用することもできます:
android:gravity="left|center"
次に、textviewの幅が&quot; fill_parent&quot;より大きい場合テキストは引き続き左に揃えられます(重力が「中央」に設定されている場合のように中央に配置されません)。
重力の適用:
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"
/>
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>
これを行うには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
グラフィカルエディターでは、すべての可能な値が表示され、その結果が表示されます。
TextView Gravity (中央水平および中央垂直)を次のように設定する必要があります:
android:layout_centerHorizontal="true"
and
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);
相対レイアウトにこれを使用
android:layout_centerInParent="true"
およびその他のレイアウト用
android:gravity="center"
TextViewで重力を使用すると、APIレベル17で実装される代替メソッドがあります-
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
違いはわかりませんが、機能します。ただし、APIレベル17以降のみ。
TextViewの
の高さと幅が wrap content
の場合、 TextView
内のテキストは常に中央に配置されます。ただし、 TextViewの
幅が 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: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"/>
上記の多くの回答が示唆するように、うまくいきます。
android:gravity="center"
垂直方向に中央に配置する場合:
android:gravity="center_vertical"
または単に水平に:
android:gravity="center_horizontal"
単純に、XMLファイルで、textviewの重力を中央に設定します:
<TextView
android:gravity="center" />
このようにしてテキストを中央に配置することができます
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
これらの複数の方法でこれを実現できます:-
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の高さと幅はコンテンツをラップするため、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);
TextView重力の作品として親レイアウト。
LinearLayout:
ご利用の場合LinearLayoutそのすべりの重力属性 android:重力式&android:layout_gravity
android:重力式:表示レイアウトポーションの内部テキストの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:重力式="center"のためのテキストセンター TextView.
android:重力式="center_horizontal"インナーテキストしたい場合は水平にすること。
android:重力式="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>
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" />
この方法を試してください、それは動作します
<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>
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>