以编程方式在ImageButton上居中TextView

时间:2017-10-11 17:55:14

标签: android

我需要以TextView为中心设置ImageButton,但需要使用代码。我可以设置一个文本,但我无法将其置于中心位置。

RelativeLayout rLayout = new RelativeLayout(this);            

TextView textView = new TextView(this);
textView.setText("text");
textView.setTextSize(25);            
textView.setGravity(Gravity.CENTER);

final ImageButton iButton = new ImageButton(this);
iButton.setImageResource(R.drawable.button);
iButton.setBackgroundColor(Color.TRANSPARENT);

rLayout.addView(iButton);
rLayout.addView(textView);
linear.addView(rLayout);

此代码在imageButton上设置文本,但将其设置在左上角。

2 个答案:

答案 0 :(得分:1)

有点不清楚你在问什么...但如果我理解正确,你必须在TextView上设置RelativeLayout.LayoutParams,然后再将其添加到父级。此外,您还必须添加规则RelativeLayout.CENTER_IN_PARENT。

所以,比如:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(size, size)
params.addRule(RelativeLayout.CENTER_IN_PARENT)
textView.setLayoutParams(params)

或其他一些适合您用例的规则组合。

答案 1 :(得分:1)

所以试试

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,  LayoutParams.FILL_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.CENTER;

iButton.setLayoutParams(params);