msa*_*sal 5 android reference colors
我有一个关于在a中使用引用的问题layer-list drawable.
我想在我的应用程序中使用自定义按钮layer-list.
btn.xml按钮的最终绘制,由以下部分组成selector:<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>
Run Code Online (Sandbox Code Playgroud)
btn_pressed看起来像这样:<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>
Run Code Online (Sandbox Code Playgroud)
关键部分是线,我声明颜色作为参考custom_color,我定义如下.
<resources>
<attr name="custom_color" format="reference|color" />
</resources>
Run Code Online (Sandbox Code Playgroud)
<resources>
<style name="MyTheme" parent="android:Theme.Light.NoTitleBar">
<item name="custom_color">#ff33b5e5</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
Eclipse根本没有给我任何错误,它编译得很好.但是当我在我的ICS Nexus S或仿真器(无论是什么版本)上启动应用程序时,它会崩溃.Logcat指出以下内容:
03-23 14:33:38.832:E/AndroidRuntime(636):引起:android.content.res.Resources $ NotFoundException:来自可绘制资源ID的文件res/drawable/btn.xml#0x7f020006
[...]
03-23 14:33:38.832:E/AndroidRuntime(636):引起:android.content.res.Resources $ NotFoundException:来自可绘制资源ID的文件res/drawable/btn_pressed.xml#0x7f020009
如果我注释掉,中的shape元素layer-list,或设置硬编码的颜色,一切正常.因此,在图层列表中引用属性似乎存在问题.
那么,有没有人知道这个问题的解决方案?我想根据我的应用程序使用的主题更改该图层列表中的颜色.
| 归档时间: |
|
| 查看次数: |
1797 次 |
| 最近记录: |