2014-11-16 14 views
6

için renk İstisna dönüştüremiyorum /values/colors.xmlAndroid çekilebilir xml rengi Özel bir tema ayarlanmış olduğunu niteliklerini ben tanımlamak benim app API 10

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

res/değerler/style.xml

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

res// 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 bazı düğmeye arka plan olarak ayarlanır. uygulama kilitleniyor aşağıdaki hariç, res/drawable/background.xml dosyayı şişirme ederken:

diğer birçok ?attr/.. çağrılar diğer kaynak dosyalarında ayarlanır rağmen bunu gayet iyi çalışıyor ?attr/bbColorPrimary çıkarırsanız 10 daha yüksek API düzeyleri çalışır
... 
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) 
.... 

. Herhangi bir sürüme özgü kaynak klasör kullanmıyorum.

Burada yanlış olan ne yapıyorum?

cevap

6

?attr/..'un xml drawables içinde desteklenmediğini belirterek SO üzerinde bir yanıt buldum. Buraya bakın:

https://stackoverflow.com/a/13471695/169748 Görünüşe en azından Hatta API ile = 10.

+1

= ben bir kilitlenme var 16 API < için de geçerlidir, API => 21 olsa iyi. – Ruocco

+0

@Omcira bundan bahsetmekten onur duyar. API = 15 ile de onaylayabilir. –

+0

API 17 ile bile, 21 dakikasında bir çöküş olduğunu düşünüyorum çünkü lolipop cihazımda iyi çalışıyor. –

İlgili konular