android的RelativeLayout编程更改高度

我尝试以编程方式更改布局高度。 我有两个button。 在一个button中,我改变了我的布局位置,第二个button我尝试接收我第一次保存的位置。

<RelativeLayout android:id="@+id/popaplayout" android:layout_width="fill_parent" android:layout_height="200dp" > 

这是我的布局,在我写的第一个button

 RelativeLayout.LayoutParams parms = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); parms.addRule(RelativeLayout.BELOW, R.id.movies_title_layout); scrollpopap.setLayoutParams(parms); scrollpopap.setScrollingEnabled(true); 

和第二个button

 RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, 300); rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); scrollpopap.setLayoutParams(rel_btn); scrollpopap.setScrollingEnabled(false); 

xml文件我写高度200dp和编程300和有不同的高度。 我怎样才能以编程方式写保存高度?

如果有人知道解决scheme,请帮助我谢谢

Solutions Collecting From Web of "android的RelativeLayout编程更改高度"

首先将200 dp转换为像素 –

 final float scale = getContext().getResources().getDisplayMetrics().density; int pixels = (int) (200 * scale + 0.5f); 

然后以编程方式设置,

 RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, pixels); rel_btn.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); scrollpopap.setLayoutParams(rel_btn); scrollpopap.setScrollingEnabled(false); 

像这样将DP转换为PX。

 final float scale = getContext().getResources().getDisplayMetrics().density; int px = (int) (100 * scale + 0.5f); // replace 100 with your dimensions 

设置相对布局的一些layout_gravity。 并通过java代码更改高度和宽度。

 RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId); rl.getLayoutParams().height = px; rl.getLayoutParams().width = px; 
 RelativeLayout layout = (RelativeLayout) findViewById(R.id.yourlayout_id); // Gets the layout params that will allow you to resize the layout LayoutParams params = layout.getLayoutParams(); params.height = 320; params.width = 320; 

如果你打算改变相对布局高度,那么这个帮助。

 RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId); relativeLayout.getLayoutParams().height = 100; relativeLayout.getLayoutParams().width = 100;