2014-09-26 24 views
18

Tôi thử thay đổi chiều cao bố cục theo chương trình. Tôi có hai nút. Trong một nút, tôi thay đổi vị trí bố trí của mình và nút thứ hai tôi cố gắng nhận được phù thủy vị trí tiết kiệm lần đầu tiên.chiều cao thay đổi RelativeLayout của android lập trình

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

Đây là một cách bố trí của tôi và trong nút đầu tiên tôi đã viết

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

và nút thứ hai

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

Trong xml tập tin tôi đã viết chiều cao 200dp và theo chương trình 300 và có chiều cao khác nhau. Làm thế nào tôi có thể viết tiết kiệm chiều cao trong lập trình?

nếu có ai biết giải pháp, hãy giúp tôi cảm ơn

Trả lời

31

Đầu chuyển đổi 200 dp vào pixel -

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

Sau đó thiết lập programatically,

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

nhờ nó làm việc – Beka

+0

Nếu tôi có một đứa bé bị kẹt RelativeLayout với match_parent rộng và sửa đổi độ rộng từ RelativeLayout, làm thế nào có thể cập nhật chiều rộng của con? – jose920405

20

Chuyển đổi DP thành PX như thế này.

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

Đặt một số bố cục_gravity của bố cục tương đối. và Thay đổi chiều cao và chiều rộng bằng mã java.

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId); 
rl.getLayoutParams().height = px; 
rl.getLayoutParams().width = px; 
+0

Bạn chưa DP đây ... – Kostya

3

Sử dụng này

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

Nếu bạn có ý định thay đổi chiều cao RelativeLayout, thì sự trợ giúp này.

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.yourId); 
relativeLayout.getLayoutParams().height = 100; 
relativeLayout.getLayoutParams().width = 100; 
Các vấn đề liên quan