如何在Android中以编程方式设置EditText框的高度和宽度

23

我想在Android中以编程方式管理一个EditText框的高度和宽度。 我尝试过edittext.setWidth(32);edittext.setEms(50);,但两者都不起作用。 请查看以下代码,因为我正在使用它来在Android中创建动态EditText

private EditText createEditText()
{
    final LayoutParams lparams = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
    final EditText edittext = new EditText(this);
    edittext.setLayoutParams(lparams);
    edittext.setWidth(32);
    edittext.setEms(50);
    return edittext;
}
6个回答

30
private EditText createEditText()
{
    final LayoutParams lparams = new LayoutParams(50,30); // Width , height
    final EditText edittext = new EditText(this);
    edittext.setLayoutParams(lparams);
    return edittext;
}

试试这个。


8
应该导入哪个LayoutParams - Mann
4
需要导入ViewGroup.LayoutParams。 - MRK
我的editText在relativeLayout中,我遇到了以下错误:java.lang.ClassCastException: android.view.ViewGroup$LayoutParams无法转换为android.widget.RelativeLayout$LayoutParams。 - Matt
lparams中的height和width值以dp(密度像素)为单位吗? - Palaniraja

16
edittext.getLayoutParams().width=32;

10
这让我遇到了空指针异常... :-( - JerabekJakub

8
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
final float height = metrics.heightPixels;

EditText edittext = new EditText(this);

edittext.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,(int) (height/2)));

1
RelativeLayout.LayoutParams.width = 32; 
RelativeLayout.LayoutParams.height = 50;

适用于我。例如。
    lparams.width = 32;

0
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) edittext.getLayoutParams();
            params.width = mScreenWidth / 5;
            params.height = mScreenWidth / 5;
            edittext.setLayoutParams(params);

-2
尝试以下代码:-
Display display = getWindowManager().getDefaultDisplay(); 
    int screenWidth = display.getWidth();
    int screenHeight = display.getHeight();

profile_pic.getLayoutParams().height=(screenHeight/6);
    profile_pic.getLayoutParams().width=(screenHeight/6);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接