如何创建自己的资源名称?

时间:2010-02-15 18:22:50

标签: android

我可以在themes.xml中使用自己的资源名称吗?例如:

<item name="headerBackground">@drawable/header</item>

在此示例中,headerBackground不是有效资源(No resource found that matches the given name...,Eclipse说。)

我应该在哪里创建/声明这些资源?这是个坏主意吗?

1 个答案:

答案 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非常有用。