新聞中心
Android提供了一種非常靈活的資源系統(tǒng),可以根據(jù)不同的條件提供可替代資源。因此,系統(tǒng)基于很少的改造就能支持新特性,比如Android N中的分屏模式。

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有克東免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
有許多東西用來構(gòu)建一個優(yōu)秀的 Android 應(yīng)用程序。除了應(yīng)用程序的編碼,你需要關(guān)注各種各樣的資源,諸如你用到的各種靜態(tài)內(nèi)容,如位圖,顏色,布局定義,用戶界面字符串,動畫等等。這些資源一般放置在項目的 res/ 下獨立子目錄中。
這節(jié)教程將學(xué)習(xí)如何來組織應(yīng)用程序資源,指定替代資源,并在應(yīng)用程序中訪問它們。
在eclipse中組織資源
你需要將每種資源放置在項目中 res/ 目錄的特定子目錄下。例如,這是一個簡單項目的文件層級:
MyProject/
src/
MyActivity.java
res/
drawable/
icon.png
layout/
activity_main.xml
info.xml
values/
strings.xml
res/ 目錄在各種子目錄中包含了所有的資源。這里有一個圖片資源,兩個布局資源和一個字符串資源文件。下表詳細(xì)的給出了在項目中 res/ 目錄里面支持的資源。
替代資源
你的應(yīng)用程序需要為特定的設(shè)備配置提供替代的資源支持。比如說,你需要為不同的屏幕分辨率提供替代的圖片資源,為不同的語言提供替代的字符串資源。在運行時,Android 檢測當(dāng)前設(shè)備配置,并為應(yīng)用程序加載合適的資源。
要為特定的配置的確定一系列替代資源,遵循如下的步驟:
在res/ 下創(chuàng)建一個新的目錄,以 _ 的方式命名。這里的 resources_name 是上表中提到的任意資源,如布局、圖片等。 qualifier 將確定個性的配置使用哪些資源。你可以查看官方文檔來了解不同類型資源的一個完整 qualifier 列表。
在這個目錄中保存響應(yīng)的替代資源。這些資源文件必須與下面例子中展示的默認(rèn)資源文件名一致,然而這些文件將確定的內(nèi)容進(jìn)行替代。例如:雖然圖片的文件名一樣,但是高分辨率的屏幕,圖片的分辨率也會高。
下面是一個例子,指定默認(rèn)屏幕的圖片和高分辨率的替代圖片。
MyProject/
src/
main/
java/
MyActivity.java
res/
drawable/
icon.png
background.png
drawable-hdpi/
icon.png
background.png
layout/
activity_main.xml
info.xml
values/
strings.xml
下面是另外一個例子,指定默認(rèn)語言的布局和阿拉伯語言的替代布局。
MyProject/
src/
main/
java/
MyActivity.java
res/
drawable/
icon.png
background.png
drawable-hdpi/
icon.png
background.png
layout/
activity_main.xml
info.xml
layout-ar/
main.xml
values/
strings.xml
訪問資源
在應(yīng)用程序開發(fā)中,需要訪問定義好的資源,不論是通過代碼還是通過 XML 文件。下面的章節(jié)介紹如何分別在這兩種場景中訪問資源。
在代碼訪問資源
當(dāng) Android 應(yīng)用程序被編譯,生成一個 R 類,其中包含了所有 res/ 目錄下資源的 ID。你可以使用 R 類,通過子類+資源名或者直接使用資源 ID 來訪問資源。
實例
訪問 res/drawable/myimage.png,并將其設(shè)置到 ImageView 上,你將使用以下代碼:
ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);
這里第一行代碼用 R.id.myimageview 來在布局文件中獲取定義為 myimageview 的 ImageView。第二行用 R.drawable.myimage 來獲取在 res/ 的 drawable 子目錄下名為 myimage 的圖片。
實例
考慮下一個例子,其中 res/values/strings.xml 有如下定義:
現(xiàn)在你可以在 ID 為 msg 的 TextView 對象上使用資源 ID 來設(shè)置文本,具體如下:
TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);
實例
這個應(yīng)用程序代碼將為活動加載這個布局,onCreate() 方法中如下:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}
在XML中訪問
考慮下面的 XML 資源文件 res/values/strings.xml,其中包含一個顏色資源和一個字符串資源 –
"1.0" encoding="utf-8"?>
"opaque_red">
#f00
"hello">Hello!
現(xiàn)在,你可以在下面的布局文件中使用這些資源來設(shè)置文本顏色和文本內(nèi)容:
"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android" android:layout_width=
"fill_parent" android:layout_height=
"fill_parent" android:textColor=
"@color/opaque_red" android:text=
"@string/hello" />
現(xiàn)在,你如果再次回到上一章節(jié)講解的” Hello World! “實例,我可以確定,你對這節(jié)中所有的概念有了更好的理解。所以,我強(qiáng)烈建議回去看看之前的實例,并查看我使用不同資源的基本用法。
分享名稱:簡單講解一下Android資源訪問
URL標(biāo)題:http://fisionsoft.com.cn/article/coehojp.html


咨詢
建站咨詢
