Tengo una pregunta sobre el uso de referencias en un layer-list
drawable
.Color de referencia en <item> -Tag, en el interior <layer-list>
Quiero usar un botón personalizado en mi aplicación, hecho de un layer-list
.
- Esa es la final
btn.xml
estirable para el botón, hecho de unselector
:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/btn_normal"/>
</selector>
- La presionado por el estado embutición
btn_pressed
parece que:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="?custom_color" />
</shape>
</item>
<item android:drawable="@drawable/btn_normal"/>
</layer-list>
La parte esencial es la línea, wh Antes declaro que el color es una referencia al custom_color
, que defino de la siguiente manera.
- attrs.xml:
<resources>
<attr name="custom_color" format="reference|color" />
</resources>
- themes.xml:
<resources>
<style name="MyTheme" parent="android:Theme.Light.NoTitleBar">
<item name="custom_color">#ff33b5e5</item>
</style>
</resources>
Eclipse me da ningún error en absoluto, y que compila bien. Pero cuando inicio la aplicación en mi ICS Nexus S, o el emulador (no importa qué versión), se bloquea. puntos LogCat a cabo el siguiente:
03-23 14: 33: 38.832: E/Android Runtime (636): Causado por: android.content.res.Resources $ NotFoundException: res Archivo/estirable/btn.xml de Identificación de recursos dibujable # 0x7f020006
[...]
03-23 14: 33: 38.832: E/Android Runtime (636): Causado por: android.content.res.Resources $ NotFoundException: res archivo/drawable/btn_pressed.xml del recurso dibujable ID # 0x7f020009
Si comento o ut, el shape
-el elemento en el layer-list
, o establece el color codificado, todo funciona. Entonces parece que hay un problema al hacer referencia a los atributos en una lista de capas.
Entonces, ¿alguien sabe la solución a este problema? Quiero cambiar los colores en esa lista de capas, dependiendo del tema, que está usando mi aplicación.
Eso no funcionó, no. Ni siquiera compila. – msal