मैं VectorDrawables के साथ नए पश्चगामी संगतता के साथ एक समस्या का सामना करना पड़ रहा है। समर्थन लाइब्रेरी 23.2 में Android VectorDrawables के साथ पिछड़े संगतता के लिए एक नई सुविधा थी।एंड्रॉयड चयनकर्ता Drawable srcCompat
मैं एक imageView जो एक SelectorDrawable करने के लिए सौंपा है। इस ड्रायलेबल में कई वेक्टर ड्रावेबल हैं इसलिए मैंने सोचा कि मुझे ऐप का उपयोग करना चाहिए: संगतता के लिए srcCompat। लेकिन यह एंड्रॉइड 4.1.2 के साथ मेरे गैलेक्सी एस 2 पर काम नहीं करता है।
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_gps_fixed_24dp"android:state_activated="true" android:state_selected="true"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="true" android:state_selected="false"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="false" android:state_selected="true"></item>
<item android:drawable="@drawable/ic_gps_off_24dp" android:state_activated="false" android:state_selected="false"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp"></item>
</selector>
सभी ड्रायवर वेक्टर xml फ़ाइलें हैं।
srcCompat के साथ इस SelectorDrawable का उपयोग करते समय मैं इस त्रुटि मिलती है:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_gps_fixed_24dp.xml from drawable resource ID #0x7f0201c1
at android.content.res.Resources.loadDrawable(Resources.java:1951)
at android.content.res.Resources.getDrawable(Resources.java:672)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881).xml from drawable resource ID #0x7f0201c1
एंड्रॉयड का उपयोग कर: src भी बदतर है।
अगर मैं अनुप्रयोग के साथ वेक्टर ड्रॉएबल में से एक का उपयोग करें: srcCompat सब ठीक काम करता है। तो मुझे लगता है कि यह SelectorDrawable और संगतता के साथ एक समस्या है।
को भी यही समस्या थी और एक समाधान पाया है या वर्तमान में संभव एंड्रॉयड 5 से पहले SelectorDrawables में VectorDrawables उपयोग करने के लिए नहीं है है?
त्वरित तथ्य:
- संकलित लक्ष्य एपीआई 23
- समर्थन Libraray 23.3.0
- vectorDrawables.useSupportLibrary = सच
- Gradle 2,0
लोड करने के लिए सहायता श्रोत से वेक्टर ड्रॉएबल संस्करण 23.3 में हटा दिया गया था - https://plus.google.com/+AndroidDevelopers/posts/iTDmFiGrVne – Jahnold
लेकिन: "का उपयोग अनुप्रयोग: srcCompat और setImageResource() काम करना जारी रखता है "तो ऐप: srcCompat अभी भी 23.3 में काम करना चाहिए। या नहीं? – marilion91
हाँ ऐप का उपयोग करके: srcCompat अभी भी काम करता है ताकि आप एक वेक्टर ड्रावर को एक छवि दृश्य में सेट कर सकें। हालांकि किसी XML स्थिति सूची में ड्रॉबल्स लोड करना दुर्भाग्यवश – Jahnold