0

这是我的代码:

LinearLayout llgrower= new LinearLayout(this);
int percent_x=80,percent_y=10;
Display display = getWindowManager().getDefaultDisplay();
edittextwidth = (int) ((int)(display.getWidth())*percent_x/100);
edittextheight= (int) ((int)(display.getHeight())*percent_y/100);

EditTextObject 包含 settext、setwidth、setheight 等默认方法

EditTextObject objedt=new EditTextObject(this);                         
objedt.setText("Some text");
objedt.setWidth(edittextwidth);
objedt.setHeight(edittextheight);
llgrower.addView(objedt);   

setWidth 工作正常,但 setHeight 不适用于 Edittext。我在 TextView 上尝试了相同的代码,setWidth 和 setHeight 都正常工作。

4

3 回答 3

0

edittext像这样使用设置比实际尺寸小的高度。也不要忘记,setTextSize因为您的文本的某些部分可能会进入不可见状态。

EditText et = (EditText) findViewById(R.id.et);
et.setLayoutParams(new LinearLayout.LayoutParams(200,15)); 
et.setTextSize(10);

我希望这能帮到您。谢谢。

于 2013-02-06T12:22:45.930 回答
0

在Java中你可以试试这个:

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

        EditText e = (EditText) findViewById(R.id.edit);
        e.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, (int) (height/2)));

        LinearLayout l = (LinearLayout) findViewById(R.id.layout);
        l.requestLayout();
    }
}

给定一个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <EditText android:id="@+id/edit"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
            />
</LinearLayout>
于 2013-02-06T12:26:30.570 回答
0

尝试使用.setLayoutParams(***params* )**

这个话题的重复?:

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

...
final LayoutParams lparams = new LayoutParams(10,20); // Width , height
final EditText edittext = new EditText(this);
edittext.setLayoutParams(lparams);
...
于 2013-02-06T12:56:43.253 回答