Android開發(fā)與實(shí)踐-Android中的資源訪問_第1頁
Android開發(fā)與實(shí)踐-Android中的資源訪問_第2頁
Android開發(fā)與實(shí)踐-Android中的資源訪問_第3頁
Android開發(fā)與實(shí)踐-Android中的資源訪問_第4頁
Android開發(fā)與實(shí)踐-Android中的資源訪問_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章Android中的資源訪問3.1Android中資源目錄結(jié)構(gòu)Android中的資源是指非代碼部分,例如,圖片、音頻、動(dòng)畫和字符串等就叫做Android中的資源文件。我們?cè)趧?chuàng)建一個(gè)Android工程時(shí),和src源文件夾并列的有兩個(gè)文件夾,分別叫做res和assets。這兩個(gè)文件夾是用來保存資源文件的。在這兩個(gè)文件夾中保存的文件有所不同,在assets中保存的一般是原生的文件,例如,一個(gè)MP3文件,Android程序不能直接訪問,必須通過AssetManager類以二進(jìn)制流的形式來讀取。而res中的資源可以通過R資源類直接訪問。assets中的資源很少用到,而res中的資源經(jīng)常使用。如圖3.1所示,在該工程中和src并列的有兩個(gè)文件夾assets和res。res目錄下又有anim,drawable,layout,menu,raw,values和xml文件夾,分別用來保存動(dòng)畫、圖片、布局文件、菜單、原生文件、常量值和XML文件。3.1Android中資源目錄結(jié)構(gòu)3.1Android中資源目錄結(jié)構(gòu)本節(jié)我們將講解如何創(chuàng)建資源文件,以及如何在代碼中使用和如何在其他資源文件中引用該資源。在代碼中我們使用Context的getResources()方法得到Resources對(duì)象,該對(duì)象提供了獲得各種類型資源的方法。在其他資源中引用資源的一般格式是這樣的:@【包名稱:】資源類型/資源名稱。例如,下面的代碼是在布局文件中引用字符串資源、顏色資源和尺寸資源:

〈TextView

android:layout_width=“fill_parent”

android:layout_height=“wrap_content’android:text=“@string/styled_welcome_message”

androidtextColor=“@color/opaque_red”

androidtextSize=“@dimen/sixteen_sp”/〉3.1.1資源的類型和布局我們可以在工程的res目錄下創(chuàng)建和保存各種不同類型的資源文件。這些資源文件要有一定的布局和格式。表3.1展示了Android中資源的布局和類型。3.1.2資源文件的使用資源文件的使用分為在代碼中使用和在其他資源文件中引用該資源文件。在我們編譯一個(gè)Android應(yīng)用時(shí),Android會(huì)自動(dòng)生成一個(gè)R類,在該類中根據(jù)不同的資源類型又生成了相應(yīng)的內(nèi)部類,該類包含了系統(tǒng)中使用到的所有資源文件的標(biāo)示,其內(nèi)容如下所示。

packagecom.amaker.test;publicfinalclassR{//屬性publicstaticfinalclassattr{

}//顏色publicstaticfinalclasscolor{publicstaticfinalintblue_text=0x7f050001;}3.1.2資源文件的使用//圖片publicstaticfinalclassdrawable{publicstaticfinalintedit=0x7f020000;}//ID表示publicstaticfinalclassid{publicstaticfinalintButton01=0x7f090005;}//布局publicstaticfinalclasslayout{publicstaticfinalintmain=0x7f030000;

}//數(shù)組publicstaticfinalclassstring{publicstaticfinalintapp_name=0x7f070000;}}3.1.2資源文件的使用1.在代碼中使用資源文件在代碼中訪問資源文件,我們是通過使用R資源類中定義的資源文件類型和資源文件名稱來訪問的。具體格式為:R.資源文件類型.資源文件名稱。例如:

//設(shè)置Activity顯示的布局視圖setContentView(R.layout.main);//獲得Textview實(shí)例et1=(EditText)findViewById(R.id.name);et2=(EditText)findViewById(R.id.like);//獲得Button實(shí)例b=(Button)findViewById(R.id.add);3.1.2資源文件的使用另外,除了訪問用戶自己定義的資源文件,還可以訪問系統(tǒng)中的資源文件。大部分的資源文件被定義在android包下的R類中。訪問系統(tǒng)中的資源文件格式為:android.R.資源文件類型.資源文件名稱。例如:

int

i;//動(dòng)畫

i=android.R.anim.fade_in;//數(shù)組

i=android.R.array.emailAddressTypes;//顏色

i=android.R.color.darker_gray;

//尺寸

i=android.R.dimen.app_icon_size;

3.2使用顏色資源3.2.1顏色值定義顏色值的定義是通過RGB三原色和一個(gè)alpha值來定義的。顏色值定義的開始是一個(gè)井號(hào)(#),后面是Alpha-Red-Green-Blue的格式。例如:#RGB#ARGB#RRGGBB#AARRGGBB3.2使用顏色資源3.2.2顏色資源XML文件的定義下面通過一個(gè)表格來展示顏色資源XML文件的定義,如表3.2所示。

3.2使用顏色資源

下面通過一個(gè)實(shí)例來演示顏色資源的使用,本實(shí)例的功能是定義兩個(gè)顏色資源:紅色背景和藍(lán)色文字。實(shí)例步驟說明如下。(1)定義一個(gè)名稱為"Chapter03_Resource”的Android工程,在該工程的res\values\目錄下,定義一個(gè)colors.xml顏色資源文件,內(nèi)容如下所示。<?xmlversion="1.0"encoding="utf-8"?><resources><colorname="red_bg">#f00</color><colorname="blue_text">#0000ff</color></resources>?3.2使用顏色資源(2)在該工程的res\layout目錄下定義一個(gè)布局資源文件,在該文件中添加一個(gè)TextView視圖組件,引用顏色資源,設(shè)置視圖組件TextView的文字顏色為藍(lán)色。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:text="測試顏色資源,紅色背景,藍(lán)色文字"

android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/blue_text"/>

</LinearLayout>3.2使用顏色資源(3)定義一個(gè)TestColorActivity類,引用顏色資源文件,設(shè)置背景色為紅色。packagecom.amaker.ch03.color;importandroid.app.Activity;importandroid.os.Bundle;importcom.amaker.test.R;publicclassTestColorActivityextendsActivity{publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceSate);

setContentView(R.layout.test_color);

//引用顏色資源,設(shè)置背景色為紅色getWindow().setBackgroundDrawableResource(R.color.red_bg);

}}3.2使用顏色資源(4)運(yùn)行程序,結(jié)果如圖3.2所示。3.3使用字符串(string)資源在一個(gè)Android工程中,我們可能會(huì)使用到大量的字符串作為提示信息。這些字符串都可以作為字符串資源聲明在配置文件中,從而實(shí)現(xiàn)程序的可配置性。在代碼中我們使用Context.getString()方法,通過傳遞資源ID參數(shù)來得到該字符串,也可以在其他資源文件中引用字符串資源,引用格式為@String/字符串資源名稱。3.31字符串資源XML文件的定義我們通過表3.3來說明字符串資源是如何定義的,包括資源的位置、XML文件的格式、獲得資源的方法和引用資源的方法等。

3.3.2字符串資源XML文件的使用

下面將通過一個(gè)實(shí)例來演示資源文件的用法。在該實(shí)例中用到兩個(gè)字符串資源:一個(gè)在布局文件中引用;另一個(gè)在Java代碼中引用。實(shí)例步驟如下。(1)在該工程的res\values\目錄下,創(chuàng)建一個(gè)字符串資源文件strings.xml,內(nèi)容如下所示:<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">TestResources</string>

<stringname="test_str1">從代碼中引用!</string>

<stringname="test_str2">從資源文件引用!</string>

</resources>?

3.3.2字符串資源XML文件的使用

?(2)在該工程的res\layoutl目錄下,定義一個(gè)布局文件test_string.xml。在該布局文件中添加兩個(gè)TextView視圖對(duì)象:第一個(gè)TextView的文本內(nèi)容直接引用strings.xml文件中的資源;第二個(gè)TextView的文本內(nèi)容在代碼中設(shè)置。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">

3.3.2字符串資源XML文件的使用

<TextViewandroid:text="@string/test_str1"android:id="@+id/myTextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

<TextViewandroid:text=""android:id="@+id/myTextView02"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

</LinearLayout>3.3.2字符串資源XML文件的使用

(3)在工程的com.amaker.ch03.string包中,創(chuàng)建一個(gè)TestStringActivity類。在該類的onCreate()方法中,設(shè)置當(dāng)前的視圖布局,并獲得TextView實(shí)例。通過Context.getString()方法,從字符串資源中獲得字符串常量,并將其設(shè)置為TextView的文本內(nèi)容。packagecom.amaker.ch03.string;importandroid.app.Activity;importandroid.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論