2013-03-15 4 views
6

मुझे पैडिंग के सापेक्ष आकारों का उपयोग करने में सक्षम होना चाहिए - डिवाइस के रिज़ॉल्यूशन और डीपीआई के आधार पर बड़ा या छोटा होना।मार्जिन और पैडिंग के साथ एंड्रॉइड वेट

उदाहरण के लिए, यदि मेरा दृश्य विस्तृत 100px है, तो मैं 10px पैडिंग बाएं और 10px पैडिंग दाएं रखना चाहता हूं। लेकिन, अगर यह एक उच्च घनत्व स्क्रीन पर चलाता है, और यह 250px कहना है, मैं छोड़ दिया और सही गद्दी की जरूरत है दोनों 25pixels होने के लिए प्रत्येक।

हार्डकोडिंग पिक्सेल या डीपी उचित प्रतीत नहीं होता है, मैं कोड-पीछे स्केलिंग तर्क से बचना पसंद करता हूं अगर मैं इससे दूर हो जाऊं। मैं भी वही प्रभाव प्राप्त करने के लिए किसी भी अतिरिक्त भारित खाली विचारों का उपयोग नहीं करना पसंद करता हूं। यकीन नहीं है कि मैं इसे किसी भी तरह से पैडिंग अनुकरण कैसे कर सकता हूं।

क्या यह xml से ऐसा करने का कोई तरीका है? या क्या मुझे कोड रिज़ॉल्यूशन/डीपीआई के आधार पर कोड को पीछे से स्केल करना है?

+0

आप में थोड़ा और अधिक विशिष्ट होना होगा। मार्जिन, पैडिंग और वज़न में बहुत अलग लक्ष्य हैं। वजन आपके दृश्य की चौड़ाई और/या ऊंचाई निर्धारित करेगा, लेकिन मार्जिन नहीं। पैडिंग * अंदर * विजेट/दृश्य के लिए है, इसलिए यह वजन विशेषता से भी आगे है। –

+0

@StefandeBruijn बिंदु लिया, सवाल संशोधित किया गया। – George

+1

आप कहते हैं कि डी पी (i) उचित प्रतीत नहीं होता है, यही कारण है कि वास्तव में नहीं है? वे हार्डकोडेड पिक्सल नहीं हैं। वे प्रति इंच डॉट्स हैं। वे वही करेंगे जो आप चाहते हैं। 8 डीपीआई (Google की सलाह दी गई मार्जिन) कम रिज़ॉल्यूशन स्क्रीन की तुलना में उच्च रिज़ॉल्यूशन स्क्रीन पर अधिक पिक्सल होगी। –

उत्तर

0

यह वास्तव में "पैडिंग के लिए सापेक्ष आकार" नहीं है, लेकिन मुझे लगता है कि एंड्रॉइड dimension value defined in XML का उपयोग करने से आप जो चाहते हैं वह करेंगे। अपने प्रश्न से अनुमान लगाना मुश्किल है क्योंकि आप "हार्डकोडिंग पिक्सल" से बचना चाहते हैं, लेकिन "इसे एक्सएमएल से भी करें";

उपरोक्त लिंक इस उदाहरण को देता है;

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="textview_height">25dp</dimen> 
    <dimen name="textview_width">150dp</dimen> 
    <dimen name="ball_radius">30dp</dimen> 
    <dimen name="font_size">16sp</dimen> 
</resources> 

फिर;

<TextView 
    android:layout_height="@dimen/textview_height" 
    android:layout_width="@dimen/textview_width" 
    android:textSize="@dimen/font_size"/> 

एंड्रॉइड एसडीके स्वयं ही इस दृष्टिकोण का उपयोग करता है;

में उदा values/dimens.xml

<resources> 

    <!-- Default screen margins, per the Android Design guidelines. --> 
    <dimen name="activity_horizontal_margin">16dp</dimen> 
    <dimen name="activity_vertical_margin">16dp</dimen> 

</resources> 

values-sw600dp/dimens.xml

<resources> 

    <!-- 
    Customize dimensions originally defined in res/values/dimens.xml (such as 
    screen margins) for sw600dp devices (e.g. 7" tablets) here. 
    --> 

</resources> 

आप एपीआई स्तर, स्क्रीन आकार, चित्र परिदृश्य बनाम, ऊपर "और अधिक" के संयोजन पर values-FOO लक्षित कर सकते हैं जब आप "विन्यास क्वालीफायर नाम" का उपयोग करके providing resources हैं ।

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