Android以编程方式为TextView设置引力

我可以在xml中使用android:gravity="bottom|center_horizontal"来获得我想要的结果,但是我需要以编程的方式来完成这个任务。 我的文本视图是在一个tablerow里面,如果这在一个relativelayouttablerow

我努力了:

 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的严重性。