テキストビューの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
にも当てはまるでしょうか。
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);
コトリン版(Thommyに感謝)
labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
また、あなたは重力あるいはlayout_gravityについて話していますか?後者はRelativeLayoutでは動作しません。
これはテキストをテキストビューの中央に配置します。
TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);
以下のように、任意のビューでレイアウトの重力を設定できます。
myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
or
myView.setGravity(Gravity.BOTTOM);
これは以下のxmlコードと同等です
<...
Android:gravity="center_vertical|right"
...
.../>
textView.setGravity(Gravity.CENTER_HORIZONTAL);
を使うべきです。
覚えている
LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
動作しません。これはウィジェットの重力を設定し、テキストの重力は設定しません。
このコードを使う
TextView textView = new TextView(YourActivity.this);
textView.setGravity(Gravity.CENTER | Gravity.TOP);
textView.setText("some text");
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
これはあなたのテキストビューの重力を設定します。