2013-03-07 7 views
6

मैं अपने ऐप भर में कई LinearLayout रों के लिए इस पृष्ठभूमि है से बना एक्सएमएल बनाना धातु प्लेट के 4 कोनों में शिकंजा के बिटमैप्स।
मैं कई जगहों पर धातु प्लेट का उपयोग करता हूं, इसलिए मैं RelativeLayout के साथ प्रत्येक ocasion पर 4 शिकंजा रखने की तुलना में इसे एक एकल ड्रॉइंग के रूप में परिभाषित करना पसंद करता हूं।एंड्रॉयड एक drawable कई बिटमैप्स

क्या टाइल किए गए फ़ोल्डर में एक एक्सएमएल को टाइल किए गए धातु प्लेट और 4 शिकंजा को गठबंधन करना संभव है?

उत्तर

23

दुर्भाग्य से मैं वास्तव में अब यह सही परीक्षण नहीं कर सकते, लेकिन मेरा मानना ​​है कि आप इस प्रकार का LayerListDrawable के साथ इस हटा कर सकते हैं:

<?xml version="1.0" encoding="utf-8"?> 

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <bitmap 
      android:src="@drawable/diamond_metal" 
      android:tileMode="repeat" /> 
    </item> 

    <item android:right="10dp" android:bottom="10dp"> 
     <bitmap 
      android:src="@drawable/screw" 
      android:gravity="bottom|right" /> 
    </item> 

    <item android:left="10dp" android:bottom="10dp"> 
     <bitmap 
      android:src="@drawable/screw" 
      android:gravity="bottom|left" /> 
    </item> 

    <item android:top="10dp" android:left="10dp"> 
     <bitmap 
      android:src="@drawable/screw" 
      android:gravity="top|left" /> 
    </item> 

    <item android:top="10dp" android:right="10dp"> 
     <bitmap 
      android:src="@drawable/screw" 
      android:gravity="top|right" /> 
    </item> 
</layer-list> 

जो कुछ भी इनसेट आप शिकंजा के लिए की जरूरत के साथ 10dp मूल्यों की जगह।

+1

एक आकर्षण की तरह काम करता है! – ilomambo

1

यह शायद NinePatch का उपयोग करके आसानी से किया जा सकता है। आप एक नाइनपैच को खींचने योग्य बना सकते हैं, फिर इसे केवल उस लेआउट की पृष्ठभूमि के रूप में सेट करें जिसे आप पृष्ठभूमि रखना चाहते हैं। यह सिर्फ आपको पृष्ठभूमि का एक वर्ग संस्करण बनाने की आवश्यकता है, तो मैं इसे उपयोग करने के लिए एंड्रॉइड के लिए .9.png में बनाने के लिए Draw 9-Patch टूल का उपयोग करने की सलाह दूंगा।

+2

यह एक टाइल बिटमैप है, इसलिए 9-पैच यहां काम नहीं करेगा। – kcoppock

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