我可以在themes.xml
中使用自己的资源名称吗?例如:
<item name="headerBackground">@drawable/header</item>
在此示例中,headerBackground
不是有效资源(No resource found that matches the given name...
,Eclipse说。)
我应该在哪里创建/声明这些资源?这是个坏主意吗?
答案 0 :(得分:3)
当然你可以使用你自己的名字,否则你会被Android默认的drawables困住.. :))
通过在res/drawable
目录中放置具有该名称的文件来声明可绘制的名称。
更新后的实际答案:
你需要在res/values/attrs.xml
中声明一个可设置样式的属性(实际文件名无关紧要,但这似乎是惯例):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyCustomView">
<attr name="headerBackground" format="reference" />
</declare-styleable>
</resources>
然后您可以在主题中为其指定一个值,例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme" parent="android:Theme">
<item name="headerBackground">@drawable/header</item>
</style>
</resources>
当然,您使用这个新定义的属性实现的View
必须能够加载Drawable
并应用它。 Android开发者网站上的Gallery example非常有用。