android - poner - Usando atributo para modificar un color de elemento dibujable
letras de colores para escribir (1)
Intento hacer un Drawable
personalizado usando un atributo pero tengo un error de inflado
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
Mi 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>
Mi attr.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="ActionBarStartColor" format="reference|color" />
<attr name="ActionBarEndColor" format="reference|color" />
</resources>
Mis temas.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>
No entiendo por qué, mi atributo es una referencia o un color, si "fuerzo" el color en themes.xml, tampoco funcionará.
¿Alguien puede ayudar?
He encontrado esta pregunta pero no se resuelve mi problema.
¡Buenas noticias para todos! Al iniciar Lollipop (21) puede usar atributos para hacer referencia a cosas como colores, por ejemplo, ?attr/colorPrimary
.
Respuesta original:
Por lo que sé, no puede hacer referencia a los atributos de estilo de los elementos dibujables, no pude encontrar un uso como ese en los recursos de la plataforma Android ( $ANDROID_HOME/platforms/android-*/data/res/
), todo lo que veo es que cada elemento dibujable incluso para los gradientes dibujables se definen en su lugar o simplemente hacen referencia a otros dibujables como los colores dibujables.
Aquí hay un informe de error relacionado para esto (inícielo):
code.google.com/p/android/issues/detail?id=26251
Puede solucionar esto utilizando dibujables xml separados como se explica en:
https://.com/a/13471695/172670