2014-09-26 11 views
18

मैं लेआउट ऊंचाई को प्रोग्रामेटिक रूप से बदलने का प्रयास करता हूं। मेरे पास दो बटन हैं एक बटन में मैं अपनी लेआउट स्थिति बदलता हूं और दूसरा बटन मैं सहेजने की स्थिति चुड़ैल प्राप्त करने का प्रयास करता हूं, मैं पहली बार था।एंड्रॉइड सापेक्ष लयआउट ऊंचाई प्रोग्रामेटिक रूप से

<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 डी पी कन्वर्ट -

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

+0

काम कर रहा है dp नहीं किया है मैं match_parent साथ RelativeLayout अंदर एक बच्चा है और RelativeLayout से चौड़ाई, संशोधित करने, कैसे बच्चे की चौड़ाई को अद्यतन कर सकते हैं? – jose920405

20

इस तरह px करने के लिए डी पी बदलें।

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

सापेक्ष लेआउट के कुछ लेआउट_ग्रैविटी सेट करें। और जावा कोड द्वारा ऊंचाई और चौड़ाई बदलें।

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

आप चौड़ाई में यहाँ ... – Kostya

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; 
संबंधित मुद्दे