如何设置动态按钮的高度和宽度?

时间:2014-01-07 05:32:27

标签: android android-layout

我想创建圈子按钮。所以我从这里得到了提示How to get round shape in Android。如在链接中所提到的,必须使按钮的高度和重量具有相同的尺寸以形成圆形,否则它将是椭圆形。我们不能使用wrap_content而不是椭圆形。

购买问题现在我动态创建按钮,我尝试设置按钮的高度和宽度相同但仍然是椭圆形状按钮而不是圆形。

我尝试通过xml文件保持按钮的重量和高度与它的工作相同,但通过动态它不是。以下是代码。

for (int count = 1; count <= rowb; count++) 
{
tblRow[count] = new TableRow(getApplicationContext());
tbl.addView(tblRow[count]);

    for (int j = 1; j <= rowb; j++) {   
    String nameB=""+i;
    btn[i] = new Button(getApplicationContext());
    btn[i].setId(i);
    btn[i].setText(nameB);
    btn[i].setWidth(1);
    btn[i].setHeight(1);
    tblRow[count].addView(btn[i]);
    btn[i].setOnClickListener(getOnClickDoSomething(btn[i],i));
    i++;
    }
}
notifyAllObservers();
move--;
}

我也试过,但它也做了,工作

TableLayout.LayoutParams lp = new TableLayout.LayoutParams(5,5);
btn[i].setLayoutParams(lp);

任何人都可以让我知道问题是什么?我怎么得到tge圆形页岩按钮而不是椭圆形?

2 个答案:

答案 0 :(得分:4)

您可以通过以下代码设置宽度和高度:

Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tblRow.addView(btnTag);

或者您也可以在其中设置dp instend of wrap_content。像:

Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(30, 30));
tblRow.addView(btnTag);

答案 1 :(得分:0)

我有这个,它对我有用。

final Button bt = new Button(ClassListActivity.this);
bt.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 450));

MATCH_PARENT的第一个是宽度。 450是高度。希望它有所帮助!