Android以编程方式为TextView设置引力
我可以在xml中使用android:gravity="bottom|center_horizontal"
来获得我想要的结果,但是我需要以编程的方式来完成这个任务。 我的文本视图是在一个tablerow
里面,如果这在一个relativelayout
的tablerow
。
我努力了:
LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); labelTV.setLayoutParams(layoutParams);
但是,如果我理解正确,这将适用于该表,而不是textview?
labelTV.setGravity(Gravity.CENTER | 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);
这将设置你的textview的严重性。