天天看點

Android資源管理——資源檔案的建立、讀取和管理

一、資源檔案的管理

所有的Android應用程式都由兩部分組成:功能代碼和資源。功能代碼決定應用程式的行為,它包括讓應用程式得以運作的所有算法。資源包括文本字元串、圖像和圖示、音頻檔案、視訊和其他應用程式使用的元件。

如果我們使用ADT開發的話,它為我們在背景自動調用AAPT編譯資源,我們就可以省了很多事。不然的話,我們得使用AAPT自己去編譯資源了。本文使用的是eclipse + ADT開發環境。資源目錄截圖圖下圖所示。

Android資源管理——資源檔案的建立、讀取和管理

資源目錄的層級結構如下表所示,表中顯示了Android SDK支援的資源類型以及它們在工程中的存儲方式。

資源類型 所需的目錄 檔案名 适用的關鍵XML元素
字元串 /res/values/ strings.xml(推薦) <string>
字元串數組 /res/values/ arrays.xml(推薦) <string-array>
顔色值 /res/values/ colors.xml(推薦) <color>
尺寸 /res/values/ dimens.xml(推薦) <dimen>
簡單Drawable圖形 /res/values/ drawables.xml(推薦) <drawable>
位圖圖像 /res/drawable/ 例:.png,.jpg,red_oval.xml等等

支援的圖形檔案或XML檔案定義的 

Drawable圖形

動畫序列(補間) /res/anim/ 例:fancy_anim.xml等等 <set>、<alpha>、<scale>、<rotate>等
菜單檔案 /res/menu/ 例:my_menu.xml <menu>
XML檔案 /res/xml/ 例:some.xml 由開發人員定義
原始檔案 /res/raw/ 例:xx.mp3,yy.txt等等
布局檔案 /res/layout/ 例:main.xml等
樣式和主題 /res/values/ 例:themes.xml <style>

AAPT貫穿所有在/res目錄下正确格式化的檔案,并且在目錄/gen中生成類檔案R.java,以通路所有變量。

Android資源管理——資源檔案的建立、讀取和管理

二、資源檔案的建立

開發人員可以通過手工編寫資源的XML檔案,使用AAPT編譯它們并生成R.java檔案來定義簡單的資源,推薦使用ADT插件。

建立完工程後,在Eclipse中定位至/res/values/strings.xml檔案,輕按兩下可以編輯它。我們可以使用Resources标簽下的Add按鈕添加幾個資源。也可以切換到源檔案編輯模式。定義的如下

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, ActivityIntent!</string>

<string name="app_name">ActivityIntent</string>

<string name="prompt">The Activity and The Intent test!</string>

<string name="myButton">測試</string>

<string name="other">另一個Activity</string>

<string name="dialBtn">電話按鈕</string>

</resources>

儲存Strings.xml檔案。Eclipse插件講将自動在你的工程中生成R.java檔案,并含有适當的資源ID,以供編譯之後使用程式通路這些資源。如果你定位到/gen/目錄下的R.java檔案,你可以看到:

public static final class string {

public static final int app_name=0x7f040001;

public static final int dialBtn=0x7f040005;

public static final int hello=0x7f040000;

public static final int myButton=0x7f040003;

public static final int other=0x7f040004;

public static final int prompt=0x7f040002;

}

三、資源的讀取

當我們建立好資源并儲存後,我們變可以在程式用通過資源的ID來使用資源了。

比如說,我們擷取資源ID為hello的内容:

String str = getResources().getString(R.string.hello);

至于Android各個具體的資源類型的建立和使用,我們将在後續的文章中陸續介紹

(本文由“ 蘿蔔根 ”編輯撰寫,轉載請注名來源)

(本文在“ 蘿蔔根 ”和 CSDN部落格 同步釋出)