Java 在运行时调整android线性布局的大小不正确

Java 在运行时调整android线性布局的大小不正确,java,android,android-layout,runtime,android-linearlayout,Java,Android,Android Layout,Runtime,Android Linearlayout,我有一个相对布局中的线性布局,xml文件中线性布局的默认宽度和高度是250和150,看起来不错。但是,当我在运行时调整它的大小,并再次将宽度和高度设置为250和150时,它看起来不像以前了,看起来宽度和高度比以前要小。我使用以下代码在运行时调整大小: LinearLayout ll = (LinearLayout)findViewById(R.id.myLayout); ll.getLayoutParams().height=150; ll.getLayoutParams

我有一个相对布局中的线性布局,xml文件中线性布局的默认宽度和高度是250和150,看起来不错。但是,当我在运行时调整它的大小,并再次将宽度和高度设置为250和150时,它看起来不像以前了,看起来宽度和高度比以前要小。我使用以下代码在运行时调整大小:

    LinearLayout ll = (LinearLayout)findViewById(R.id.myLayout);
    ll.getLayoutParams().height=150;
    ll.getLayoutParams().width=250;
    ll.requestLayout();
    ll.invalidate();

我认为我们在运行时设置的值是以像素为单位,而不是以倾角为单位,但我不确定。如果这是真的,我如何在运行时更改宽度和高度的单位?

尝试使用DP,下面是一种转换为DP的方法:

int valueInDP= (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, YOURVALUE, getResources().getDisplayMetrics());
切换出PX中的值,例如250,尝试如下:

Layoutparams params=ll.getlayoutparams();参数高度=300;参数宽度=200;ll.setlayoutparams(参数)