Android中的資源訪問
Android中的資源是指非代碼部分,指外部檔案。
assets中儲存的一般是原生的檔案,例如MP3檔案,Android程式不能直接存取,必須通過AssetManager類以二進位流的形式來讀取。
res中的資源可以通過R資源類直接存取。
R類是自動產生的,在該類中根據不同的資源類型產生了相應的內部類,該類包含了系統中使用到的所有資源檔的標識。
1.在代碼中使用資源檔
在代碼中訪問資源檔,是通過R類中定義的資源檔類型和資源檔名稱來訪問的。
具體格式為:
R.資源檔類型.資源檔名稱
另外,除了訪問使用者自訂的資源檔,還可以訪問系統中的資源檔。
訪問系統中的資源檔的格式為:
android.R. 資源檔類型.資源檔名稱
2.在其他資源檔中引用資源檔
經常會在布局檔案中引用圖片、顏色資源、字串資源和尺寸資源。
在其他資源中引用資源的一般格式是:
@[包名稱:]資源類型/資源名稱
使用顏色資源
顏色值定義的開始時一個#號,後面是Alpha-RGB的格式。
例如:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
引用資源格式:
Java代碼中:R.color.color_name
XML檔案中:@[package:]color/color_name
使用時在res\values\目錄下,定義一個colors.xml檔案,裡面存放顏色名字和顏色值的索引值對。
如: 複製代碼 代碼如下:<resources>
<color name="red_bg">#f00</color>
<color name="blue_text">#0000ff</color>
</resources>
其他資源如字串、尺寸都是類似的方法。
使用字串資源
建立字串資源檔strings.xml.裡面內容也是索引值對
在Java代碼中引用字串資源R.string.string_name
可如下取得:
String str = getString(R.string.string_name).toString();
在xml檔案中引用字串資源:@[package:]string/string_name
使用尺寸資源
尺寸資源被定義在res\values\dimens.xml檔案中。
Android中支援的尺寸單位:
單位表示 |
單位名稱 |
說明 |
dip |
裝置獨立像素 |
不同裝置不同的顯示效果,dip與螢幕密度有關 |
px |
像素 |
螢幕上的真實像素表示,不同裝置不同顯示屏顯示效果相同 |
in |
英尺 |
基於螢幕的物理尺寸 |
mm |
毫米 |
基於螢幕的物理尺寸 |
pt |
點(磅) |
英尺的1/72 |
dp |
和密度無關的像素 |
相對螢幕物理密度的抽象單位 |
sp |
和精度無關的像素 |
和dp類似,與刻度無關的像素,主要處理字型大小 |
引用尺寸資源:
在Java代碼中: R.dimen.dimen_name
在xml檔案中:@[package:]dimen/dimen_name
使用原始XML資源
XML檔案定義在工程的res\xml\目錄下,通過Resources.getXML()方法來訪問。
獲得原始XML檔案的思路是,通過getResources().getXml()獲得XML原始檔案,得到XmlResourceParser對象,通過該對象來判斷是文檔的開始還是結尾、是某個標籤的開始還是結尾,並通過一些獲得屬性的方法來遍曆XML檔案,從而訪問XML檔案的內容。
使用drawables資源
drawable資源是一些圖片或者顏色資源,主要用來繪製螢幕,通過Resources.getDrawable()方法獲得。
drawable資源分為三類:Bitmap File(位元影像檔案)、Color Drawable(顏色)、Nine-Patch Image(九片圖片)。
Android中支援的位元影像檔案有png、jpg和gif。
引用位元影像資源的格式:
Java代碼中:R.drawable.file_name
XML檔案中:@[package:]drawable/file_name
使用布局(layout)資源
布局資源是Android中最常用的一種資源,將螢幕中組件的布局方式定義在一個XML檔案中,類似於Web中的HTML頁面。
布局檔案位於res\layout\中,名稱任意。Android通過LayoutInflater類將XML檔案中的組件解析為可視化的視圖組件。
在Activity中,調用Activity.setContentView()方法,將布局檔案設定為Activity的介面,使用findViewById()方法來得到布局中的組件。
引用布局檔案:
Java代碼中:R.layout.my_layout
XML檔案中:@[package:]layout/my_layout
使用菜單資源
任何視圖組件的建立方式都有兩種:一種通過在布局檔案中聲明建立;另一種通過在代碼中建立。
Android中的菜單分為選項菜單、操作功能表和子功能表,都可以在XML檔案中聲明定義,在代碼中通過MenuInflater類使用。
菜單資源檔也是XML檔案,放在工程res\menu\目錄下。通過R.menu.my_menu的方式來引用。
典型菜單資源檔的結構:<menu>根項目,在根項目裡會嵌套<item>和<group>子項目,<item>元素中也可嵌套<menu>形成子功能表。
時間和精力有限,不能對每一個類型都做詳細的例子研究,只好在實際的應用中綜合起來再慢慢體會了。加油!