2010-02-15 49 views
3

我可以在themes.xml中使用我自己的資源名稱嗎?例如:如何創建我自己的資源名稱?

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

在這個例子中,headerBackground不是一個有效的資源(No resource found that matches the given name...,說的Eclipse)。

我應該在哪裏創建/聲明這些資源?這是一個壞主意嗎?

回答

3

當然你也可以使用自己的名字,否則你會與Android默認繪項目被卡住.. :)

您通過放置一個同名的文件在您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 Developers網站上的Gallery example在那裏很有用。

+0

哦。也許這個問題不清楚。這裏的問題是「headerBackground」不是有效的資源類型。我的問題是我在哪裏申報我自己的資源類型 - 資源的名稱,而不是資源值。 – moraes 2010-02-15 18:46:19

相關問題