Android,以编程方式布局按钮视图?

时间:2010-10-28 15:43:02

标签: android layout view

我正在尝试以编程方式定义我的程序布局,并在某个位置添加一个按钮。我没有使用布局xml作为内容视图。

RelativeLayout mainLayout;
    mainLayout = new RelativeLayout(this);
    mainLayout.setLayoutParams(new
LayoutParams(LayoutParams.FILL_PARENT,android.view.ViewGroup.LayoutParams.FILL_PARENT));

然后我添加了一个我要应用属性的按钮

layout align center
parent align left
height 60px
width 60px

这是迄今为止的按钮

Button BtnNext = new Button(this);
    BtnNext.setWidth(60);
    BtnNext.setHeight(60);
    BtnNext.setFocusable(true);
    BtnNext.setId(idBtnNext);
    BtnNext.setText("Next");
    mainLayout.addView(BtnNext, 1);

高度和宽度无法正常工作。

2 个答案:

答案 0 :(得分:3)

您好,您可以尝试设置布局参数

  RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  rel_btn.height = 60;
  rel_btn.width = 60;
  BtnNext.setLayoutParams(rel_btn);

您还可以通过设置相对布局参数(如

)为Button添加规则和设置边距
 rel_btn.addRule(RelativeLayout.CENTER_VERTICAL);
 rel_btn.leftMargin = 220;

答案 1 :(得分:2)

高度和宽度不会如您所愿,因为您没有使用与密度无关的像素(倾角)
您在此处设置的值以像素为单位 您可以将像素转换为dip final float scale = getResources().getDisplayMetrics().density;
int dip = (int) (60 * scale + 0.5f);

您将获得更准确的结果