2011-09-01 15 views
14

मैं एक पृष्ठभूमि के रूप में निम्नलिखित drawable सेट है:एंड्रॉयड, पृष्ठभूमि, परत-सूची और स्केलेबल बिटमैप आइटम

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 
    <bitmap android:src="@drawable/base_bg" 
    android:gravity="bottom" /> 
</item> 
<item android:top="10dp" android:left="10dp"> 
    <bitmap android:src="@drawable/decoration1" 
    android:gravity="top|right" 
    android:width="25dp" 
    android:height="25dp" /> 
</item> 
<item android:top="10dp" android:left="10dp"> 
    <bitmap android:src="@drawable/decoration2" 
    android:gravity="top|right" 
    android:width="25dp" 
    android:height="25dp" 
    /> 
</item> 
</layer-list> 

यह सब बिटमैप्स (base_bg, decoration1, और decoration2) को प्रदर्शित करता है, लेकिन मैं नहीं मिल सकता है उनके आकार को संशोधित करने का एक तरीका। मैं मुख्य पृष्ठभूमि और इसके शीर्ष पर सजावट करना चाहता हूं जिसमें डीपीआई के आधार पर विभिन्न आकार होंगे। क्या ऐसा करने का कोई आसान तरीका है, या क्या मुझे वास्तव में विभिन्न डीपीआई के लिए "सजावट" का एक गुच्छा होना है? यह अच्छा नहीं है और मैं इसके बजाय स्केल/आकार बदलने का विकल्प चाहता हूं!

android:width और android:height विशेषताएँ कुछ ऐसा है जो मैं खोजना चाहता हूं, लेकिन मुझे पता है कि यह काम नहीं करता है। फिलहाल मैं विभिन्न डीपीआई के लिए अलग-अलग संस्करणों का उपयोग कर रहा हूं लेकिन आशा करता हूं कि यह थोड़ा अधिक उपयोगकर्ता के अनुकूल हो सकता है।

+0

संभवतः आपको इसके बजाय फ्रेम-लेआउट पर विचार करना चाहिए: फिर आप प्रत्येक दृश्य को विघटित रूप से संशोधित कर सकते हैं। – RichieHH

उत्तर

9

मुझे नहीं पता कि ये छवियां कैसी हैं, लेकिन, उदाहरण के लिए, आप एक बड़ी छवि बना सकते हैं और इसे किसी आइटम एंड्रॉइड में उपयोग कर सकते हैं: ड्रायबल फ़ील्ड, इस तरह से छवि आइटम का आकार लेती है।

<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 
    <bitmap android:src="@drawable/base_bg" 
    android:gravity="bottom" /> 
</item> 
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> 
</item> 
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> 
</item> 
</layer-list> 

अन्य समाधान LayerDrawable (here) और Drawable (here) वर्गों के साथ प्रोग्राम के रूप में यह करने के लिए हो सकता है। आप 3 ऑब्जेक्ट ऑब्जेक्ट्स के साथ लेयर ऑब्जेक्ट का निर्माण कर सकते हैं और फिर प्रत्येक ड्रायबल ऑब्जेक्ट पर विधि सेटबाउंड (रेक्ट) के साथ सही आकार का चयन कर सकते हैं।

मुझे आशा है कि यह आपकी मदद करेगी।

+0

परतें [1] .setBounds (4, 4, 4, 4); <- काम नहीं करता -.- –

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