2014-11-16 10 views
6

के लिए रंग अपवाद को कनवर्ट नहीं कर सकता मेरे ऐप में मैं परिभाषित रंग विशेषताओं है कि मैं एक कस्टम थीम में सेट:एंड्रॉयड drawable एक्सएमएल एपीआई 10

res/values ​​/ attrs.xml

<resources> 
    <attr name="bbColorPrimary" format="color|reference" /> 
</resources> 

रेस /values/colors.xml

<resources> 
    <color name="white">#ffffff</color> 
</resources> 

res/values ​​/ style.xml

<style name="MyStyle" parent="@style/Theme.AppCompat.NoActionBar"> 
    <item name="bbColorPrimary">@color/white</item> 
</style> 

रेस/drawable/background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:state_pressed="true"> 
     <shape> 
      <solid android:color="?attr/bbColorPrimary" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <solid android:color="@color/transparent" /> 
     </shape> 
    </item> 
</selector> 

res/drawable/background.xml कुछ बटन की पृष्ठभूमि के रूप में सेट है। ऐप्लिकेशन क्रैश res/drawable/background.xml फ़ाइल बढ़ा-चढ़ाकर, जबकि निम्न अपवादों के साथ:

... 
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 
      at android.content.res.TypedArray.getColor(TypedArray.java:326) 
      at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:748) 
      at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) 
      at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:172) 
.... 

यह 10 से अधिक अगर मैं ?attr/bbColorPrimary यह ठीक काम करता है, को दूर API स्तरों पर काम करता है, हालांकि कई अन्य ?attr/.. कॉल अन्य संसाधन फ़ाइलों में स्थापित कर रहे हैं । मैं किसी संस्करण-विशिष्ट संसाधन फ़ोल्डर का उपयोग नहीं कर रहा हूं।

मैं यहाँ क्या गलत कर रहा हूं?

उत्तर

6

मुझे एसओ पर एक उत्तर मिला, उल्लेख किया कि ?attr/.. एक्सएमएल ड्रॉबल्स में समर्थित नहीं है। यहाँ देखें: https://stackoverflow.com/a/13471695/169748

जाहिर है कि कम से कम एपीआई < = 10

यहां तक ​​कि एपीआई के साथ
+1

= 16 मैं एक दुर्घटना है के लिए सच है, एपीआई => 21 यद्यपि ठीक कर रहे हैं। – Ruocco

+0

@ ओमसीरा इसका उल्लेख करने के लिए धन्यवाद। एपीआई = 15 के साथ भी पुष्टि कर सकते हैं। –

+0

एपीआई 17 के साथ भी, मुझे लगता है कि इसकी दुर्घटना <21 में है, क्योंकि मेरे लॉलीपॉप डिवाइस में ठीक काम करता है। –

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