2014-09-26 66 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; 
相關問題