Android Resources

Android Resources

Android Resources即Android資源檔案。Android的資源檔案,是由目錄結構,Xml格式的檔案,和純數據檔案構成。

特點

Android的資源檔案,覆蓋面超級廣,只要是和界面相關的,都可以用資源檔案表示,比如:UI的樣式,選單,配置檔案,各種描述性字元串,圖片,音頻視頻檔案,動畫,顏色,尺寸,風格和樣式等。

結構

Android資源檔案的一般目錄結構可以用下面的圖來表示:

使用

我們可以在代碼中直接使用資源檔案,如:

setContentView(R.layout.main);

Toast.makeText(this, R.string.app_error, Toast.LENGTH_LONG).show();

資源之間也可以互相引用,如:

attribute=”@[packagename:]resourcetype/resourceidentifier”

使用示例

resoureces就是res目錄下的那些目錄和檔案,常用的有:

res/drawable/ 用來存放圖片檔案

res/layout/ 用來存放布局定義檔案

res/values/ 用來存放一些變數、參數等檔案

android允許你定義多個string xml檔案 這些resource位於/res/value目錄下,檔案名稱是任意的

這是一個普通的字元串資源檔案

Xml代碼

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

<resources>

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

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

</resources>

當這個檔案被創建或修改了,eclipse的adt外掛程式會自動更新你原始碼中一個叫R.java的檔案

R.java

在R.java的注釋部分, 有這樣一段話:“AUTO-GENERATE FILE. DO NOT MODIFY”,這個檔案是自動生成的,不要修改。

這個檔案是在程式編譯過程中由aapt(Android Asset Packaging Tool) 自動生成

這個檔案中的屬性都是public static final的,所以可以直接在Java代碼中引用,每個屬性都代表一個資源,看起來就像為每個資源都定義了一個ID,然後通過這個ID來訪問資源

所有的資源檔案都被編譯進最後生成的二進制包中,這樣能夠帶來很高的性能和效率

string的定義非常簡單

Xml代碼 <string name="key">value</string>

value可以只普通的字元串也可以是html代碼,或者是包含單引號,雙引號的字元串

Xml代碼 <string name="quoted_string">"quoted'string"</string>

<string name="double_quoted_string">\"double quotes\"</string>

<string name="target_string">hello <b><i>android</i></b>,you are very younger!</string>

在其他的android xml檔案中引用含有html標記的值和引用普通的string一樣

Xml代碼 <TextView android:text="@string/target_string"

android:id="@+id/text3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"></TextView>

在java程式中套用這些值可以這樣

Java代碼 this.getResources().getString(R.string.target_string);

dimension resources

android中定義的dimension單位有以下這些

px: pixel(像素)

in:inches(英寸)

mm:millimeter(毫米)

pt:point(點)

dp:density密度

sp:刻度

定義dimension可定義string一樣

Xml代碼 <resources>

<dimen name="mysize_in_pixels">1px</dimen>

<dimen name="mysize_in_dp">1dp</dimen>

<dimen name="medium_size">100sp</dimen>

</resources>

你可以在style中或者定位android UI 中使用這些dimension資源

如果在java中需要使用這些dimensions可以調用getResources方法

Java代碼 this.getResources().getDimension(R.dimen.mysize_in_pixels);

在ml檔案中使用dimension

Xml代碼 <TextView android:text="@string/target_string"

android:id="@+id/text3"

android:layout_width="wrap_content"

android:textSize="@dimen/medium_size" android:layout_height="wrap_content"></TextView>

相關詞條

熱門詞條

聯絡我們