2014-07-27 4 views
7

अंदर परत-सूची मिल सकता है मैं निम्नलिखित ड्रॉएबलमैं चयनकर्ता

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

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="false"> 
     <shape android:shape="rectangle"> 
      <corners android:radius="3dp"/> 
      <solid android:color="#006600" /> 
     </shape> 
    </item> 

    <item android:state_pressed="true"> 
     <shape android:shape="rectangle"> 
      <corners android:radius="3dp"/> 
      <solid android:color="#003300" /> 
     </shape> 
    </item> 
</selector> 

और

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

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <corners android:radius="5dp"/> 
      <solid android:color="#D0D0D0"/> 
     </shape> 
    </item> 
    <item> 
     <inset 
      android:drawable="@drawable/button_shape" 
      android:insetBottom="5dp" 
      android:insetLeft="5dp" 
      android:insetRight="5dp" 
      android:insetTop="5dp"> 
     </inset> 
    </item> 
</layer-list> 

उनमें से एक में मर्ज करने के लिए एक रास्ता है है? मेरी मुख्य समस्या यह है कि मेरे पास inset के अंदर नहीं हो सकता है। चूंकि button_shape.xml का कहीं और उपयोग नहीं किया जा रहा है, इसलिए मैं किसी भी कारण से अतिरिक्त फ़ाइल नहीं बनाना चाहता हूं।

+0

एक छवि पोस्ट करें जो आप –

+0

करने की कोशिश कर रहे हैं मैं छाया के साथ एक बटन बनाने की कोशिश कर रहा हूं। उपरोक्त कोड पूरी तरह से काम कर रहा है। लेकिन मैं उन दो एक्सएमएल फ़ाइलों को एक में विलय करना चाहता हूं। –

+1

आपके पास के अंदर क्यों नहीं हो सकता है? यह एक वैध संयोजन की तरह लगता है। एक्सएमएल आपके मर्ज किए गए ड्रॉबल जैसा दिखता है? – alanv

उत्तर

13

धन्यवाद दोस्तों! निम्नलिखित काम करता है, यहां तक ​​कि एंड्रॉइड स्टूडियो शिकायत करता है कि inset के अंदर अनुमति नहीं है।

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

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <corners android:radius="5dp"/> 
      <solid android:color="#D0D0D0"/> 
     </shape> 
    </item> 
    <item> 
     <inset android:insetBottom="2dp"> 
      <selector> 
       <item android:state_pressed="false"> 
        <shape android:shape="rectangle"> 
         <corners android:radius="3dp"/> 
         <solid android:color="#006600" /> 
        </shape> 
       </item> 

       <item android:state_pressed="true"> 
        <shape android:shape="rectangle"> 
         <corners android:radius="3dp"/> 
         <solid android:color="#003300" /> 
        </shape> 
       </item> 
      </selector> 
     </inset> 
    </item> 
</layer-list> 
+0

यहां एक उदाहरण दिया गया है जहां प्रत्येक राज्य के लिए लेयर-लिस्ट एक्सएमएल के साथ चयनकर्ता का उपयोग किया जाता है: http://stackoverflow.com/a/8339852/4975760 – Dacker

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