web-dev-qa-db-ja.com

AndroidはTextViewの重力をプログラムで設定します

テキストビューのxmlでAndroid:gravity="bottom|center_horizontal"を使用して目的の結果を得ることができますが、これはプログラムで行う必要があります。私のtextviewは、それがtablerowで問題になる場合はrelativelayoutの内側にあります。

私が試してみました:

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);

しかし、私が正しく理解していれば、それはテキストビューではなくtablerowにも当てはまるでしょうか。

196
Nate
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

コトリン版(Thommyに感謝)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

また、あなたは重力あるいはlayout_gravityについて話していますか?後者はRelativeLayoutでは動作しません。

478
Maragues

これはテキストをテキストビューの中央に配置します。

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
38
radiofrequency

以下のように、任意のビューでレイアウトの重力を設定できます。

myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
 or
myView.setGravity(Gravity.BOTTOM);

これは以下のxmlコードと同等です

<...
 Android:gravity="center_vertical|right"
 ...
 .../>
6
Bajrang Hudda

textView.setGravity(Gravity.CENTER_HORIZONTAL);を使うべきです。

覚えている

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;

動作しません。これはウィジェットの重力を設定し、テキストの重力は設定しません。

2
Irshu

このコードを使う

        TextView textView = new TextView(YourActivity.this);
        textView.setGravity(Gravity.CENTER | Gravity.TOP);
        textView.setText("some text");
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

これはあなたのテキストビューの重力を設定します。

1
Sibin Davis