Использование атрибута для изменения цвета рисоваемого элемента

Я пытаюсь сделать пользовательский Drawable , используя атрибут, но у меня есть раздувающая ошибка

 01-21 11:01:06.171: E/AndroidRuntime(13695): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/action_bar_background.xml from drawable resource ID #0x7f020000 

My action_bar_background.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="90" android:endColor="?attr/ActionBarEndColor" android:startColor="?attr/ActionBarStartColor" /> </shape> 

Мой attr.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="ActionBarStartColor" format="reference|color" /> <attr name="ActionBarEndColor" format="reference|color" /> </resources> 

Мои темы.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Theme1" parent="@style/Theme.GreenDroid.Light.NoTitleBar"> <item name="ActionBarStartColor">@color/greyDark</item> <item name="ActionBarEndColor">@color/greyLight</item> </style> <style name="Theme.Theme2" parent="@style/Theme.GreenDroid.Light.NoTitleBar"> <item name="ActionBarStartColor">@color/myRed</item> <item name="ActionBarEndColor">@color/myWhite</item> </style> </resources> 

Я не понимаю, почему, мой атрибут является ссылкой или цветом, если я «заставляю» цвет в theme.xml, он тоже не работает.

Может ли кто-нибудь помочь?

Я нашел этот вопрос, но это не разрешает мою проблему.

Solutions Collecting From Web of "Использование атрибута для изменения цвета рисоваемого элемента"

Хорошая новость! Начиная Lollipop (21), вы можете использовать атрибуты для ссылки на такие цвета, как например ?attr/colorPrimary .

Оригинальный ответ:

Насколько я знаю, вы не можете ссылаться на атрибуты стиля из drawables, я не мог найти такое использование в ресурсах платформы Android ( $ANDROID_HOME/platforms/android-*/data/res/ ), все, что я вижу, – это то, что все доступные даже для Градиентные чертежи определены на месте или они просто ссылаются на другие чертежи, например, на рисунки.

Ниже приведен соответствующий отчет об ошибке (star it):

https://code.google.com/p/android/issues/detail?id=26251

Вы можете обойти это, используя отдельные xml-чертежи, как описано в:

https://stackoverflow.com/a/13471695/172670