2011-05-18 6 views
16

मैं अपने LinearLayout से 45 डुबकी की ऊंचाई निर्धारित करने की कोशिश कर रहा हूं।LinearLayout.LayoutParams डुबकी का उपयोग कैसे करें ...?

LinearLayout को विस्तारित करते समय मैं यह कैसे कर सकता हूं?

अभी मैं सिर्फ किया: LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 45);

उत्तर

48

मुद्दा इस तरह का मान के तहत एक dimens.xml फ़ाइल बनाने के लिए जाने के लिए सबसे अच्छा तरीका है और वहाँ अपने डुबकी मूल्यों में डाल दिया, और उसके बाद कोड में आप उस फ़ाइल से आयाम खींचें। संसाधन यही हैं, है ना? =)

यहाँ एक dimens.xml का एक उदाहरण है:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="about_image_bottom">0dp</dimen> 
</resources> 

और यह आप इसे कैसे कोड में बाहर खींच कर सकते हैं:

RelativeLayout.LayoutParams iv_params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
iv_params.setMargins(0, 0, 0, (int) getResources().getDimension(R.dimen.about_image_bottom)); 

और फिर आप जो कुछ भी वस्तु आप की जरूरत करने के लिए पैरामीटर सेट , मेरे मामले में ImageView iv:

iv.setLayoutParams(iv_params); 
+1

+1 अच्छा समाधान गीक्स .. –

+0

शू ldn't dimens.xml डीपी के बजाय डुबकी में dimen शामिल है? चूंकि डुबकी अधिक सटीक है ... – Salmaan

+0

डुबकी == डीपी, यदि आप यहां जवाब की जांच करते हैं, तो उनके पास एंड्रॉइड http://stackoverflow.com/questions/2025282/difference में माप की विभिन्न इकाइयों के बारे में सारी जानकारी है -बेटवीन-पीएक्स-डीपी-डुबकी और एसपी-इन-एंड्रॉइड – Gix

-1

शायद सबसे अच्छा तरीका है XML में ठीक से निर्दिष्ट करने के लिए किया जाएगा। जो भी वर्ग आप XML टैग में LinearLayout विस्तार करने के लिए बनाया के साथ सामान्य LinearLayout टैग बदलें:

<com.example.MyLinearLayout 
       xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="45dp" 
       android:orientation="vertical" > 
.... 

अधिक जानकारी के लिए here देखें।

16

आप DisplayMatrics का उपयोग कर सकते हैं और स्क्रीन घनत्व निर्धारित कर सकते हैं। कुछ इस तरह:

int pixelsValue = 5; // margin in pixels 
float d = context.getResources().getDisplayMetrics().density; 
int margin = (int)(pixelsValue * d); 

आशा है कि यह मदद करता है ^^

संबंधित मुद्दे