2014-09-26 119 views
18

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

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

这是我的布局 并在第一个按钮,我写

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); 

和第二个按钮

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并且有不同的高度。我怎样才能编程保存高度?

,如果有人知道的解决方案,请帮助我 感谢

回答

31

首先转换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); 
+1

它的工作 – Beka 2014-09-26 11:25:42

+0

在宽度和修改的RelativeLayout的宽度,如何更新孩子的宽度是多少? – jose920405 2016-09-20 20:22:32

20

DP转换与P x这样。

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; 
+0

如果我有一个孩子里面的RelativeLayout与match_parent你还没有在这里...... dp的感谢 – Kostya 2016-11-10 00:01:38

3

使用此

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; 
2

如果你打算改变RelativeLayout高度,那么这个帮助。

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId); 
relativeLayout.getLayoutParams().height = 100; 
relativeLayout.getLayoutParams().width = 100; 
相关问题