Android開發(fā)速成簡潔教程二十二:使用資源Resources
在前面的例子中,我們忽略了一個重要的原則,在代碼和Layout中,直接使用了字符串常量,比如:
- <Button android:text=”Pattern”
- android:id=”@+id/btnPattern”
- android:layout_width=”wrap_content”
- android:textColor=”@color/black”
- android:checked=”true”
- android:layout_height=”wrap_content”>
- </Button>
我們直接定義Button的顯示內(nèi)容為“Pattern”。如果你想你的應(yīng)用支持多種設(shè)備,多種語言,那么直接使用字符串常量會給程序的移植帶來很大的問題。因此設(shè)計應(yīng)用是一個重要原則是盡可能的將UI相關(guān)的資源(如圖像,文字等)以外部資源的形式來定義。
Android支持多種資源類型,對應(yīng)每一種資源,你可以定義一個缺省資源和多個可選資源(根據(jù)設(shè)備配置或語言類型等)。
缺省資源定義成與設(shè)備配置和語言無關(guān),用在找不到與設(shè)備配置對應(yīng)資源時使用。比如說你可以將缺省UI Layout定義在 res/layout 中, 而將屏幕橫置(Landscape)定義在 res/layout-land 中。Android在運行時會根據(jù)設(shè)備配置自動選擇合適的資源。
下圖顯示兩種不同配置的設(shè)備中沒有定義可選資源時都使用缺省資源定義:
下圖應(yīng)用定義給兩種不同設(shè)備定義了兩種資源,一是缺省資源,一是為橫屏顯示時的資源:
在定義可選資源時,Android對可選資源的命名方法有一定的規(guī)定,具體可以參見http://developer.android.com/guide/topics/resources/providing-resources.html