我正在为drawable编写一个xml。我的问题是:有没有办法给src属性一个对attr.xml文件中定义的属性的引用?我试过了:
android:src="?image"
和
android:src="?attr/image"
它们似乎都不起作用。这是我的attr.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="image" format="reference"></attr>
</resources>
我在哪里定义与主题相关的值:
<resources>
<style name="HOLO" parent="@android:style/Theme.Black">
<item name="android:textColor">#00FFFF</item>
<item name="image">@drawable/holo_vcard_settings_icon</item>
</style>
<style name="HOLO_LIGHT" parent="@android:style/Theme.Light">
<item name="android:textColor">#FF00FF</item>
<item name="image">@drawable/holo_light_vcard_settings_icon</item>
</style>
</resources>
答案 0 :(得分:0)
一些建议:
BTW,引用您的属性的正确语法是:
<... android:src="?attr/image" .../>
第4个选项:如果所有其他方法都失败,您可以尝试将该属性用作样式。 (只是预感,它可能不起作用)例如:
<resources>
<attr name="imageStyle" format="reference"></attr>
</resources>
然后在你的styles.xml
<style name="LightImageStyle">
<item name="android:src">@drawable/light_png</item>
</style>
<style name="DarkImageStyle">
<item name="android:src">@drawable/dark_png</item>
</style>
然后在你的themes.xml
中 <style name="HOLO" ...>
<item name="imageStyle">@style/DarkImageStyle</item>
</style>
<style name="HOLO_LIGHT" ....>
<item name="imageStyle">@style/LightImageStyle</item>
</style>
最后在你的布局中:
<ImageView style="?attr/imageStyle" ... />