課件-btc android01第6章資源管理_第1頁
課件-btc android01第6章資源管理_第2頁
課件-btc android01第6章資源管理_第3頁
課件-btc android01第6章資源管理_第4頁
課件-btc android01第6章資源管理_第5頁
免費預(yù)覽已結(jié)束,剩余34頁可下載查看

下載本文檔

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

文檔簡介

第六章資源管理1知識點回顧Toast提示框Notification通知欄AlertDialog對話框2本章目標(biāo)了解資源的概念、資源存儲映射的方式了解常用資源類型的定義和訪問方式3本章教學(xué)內(nèi)容資源簡介資源的概念資源存儲資源映射資源命名資源訪問常用資源類型4什么是資源Android中的代碼、字符串、菜單、圖像、聲音、視頻統(tǒng)一稱為資源。從資源文件的類型來劃分,可以將資源文件劃分為XML、圖像和其他。資源存放的目錄(res/anim、res\color、res\layout、res\menu、res/drawable)

5資源的存儲Android應(yīng)用中的資源統(tǒng)一放在Android工程的res目錄下,而且不同類型的資源按照要求放在指定的子目錄下。

6資源的映射Android應(yīng)用中的所有資源,都將被編譯成二進制的形式存放在Android應(yīng)用中,每個資源都被賦予一個獨一無二的int型的ID,資源在引用時將通過int型的ID而不是資源的名稱。7

字符串常量資源的示例8在res/values/strings.xml文件中定義字符串常量如下:字符串常量資源的示例9在res/layout/main.xml布局資源文件中引用字符串常量字符串常量資源的示例10在gen/R.java中自動生成如下資源名稱與資源ID之間的映射:資源命名(1)資源命名要符合Java變量命名規(guī)范(2)同類資源的文件名或變量名不能重復(fù),因為同類資源的ID都被放在R的同一個內(nèi)置類中,當(dāng)然不允許有重名的類,同一個類中也不允許有重名的變量。(3)由于在生成ID時并不考慮資源文件的擴展名,因此,在同一個資源類型的目錄中不能存在文件名相同,擴展名不同的資源文件。11資源的訪問(1)引用自定義的資源@[package]type/name@為資源引用的標(biāo)志,package為資源所在的包名Type為資源類型,允許的值為:layout、value、drawable、string、color、menu、raw和xml等例如:main.xml文件中對string資源hello引用代碼如下

android:text=“@string/hello”(2)引用系統(tǒng)資源@android:type/name例如:android:textColor=“@android:color/opaque_red”

12資源的訪問(3)R.java中如何訪問資源R.例如,需要引用string資源hello,對應(yīng)的代碼

R.string.hello也可以引用android系統(tǒng)資源,只不過要在R的前面加上包名android。例如setBackground(android.R.color.darker_gray)13本章教學(xué)內(nèi)容資源簡介資源的概念資源存儲資源映射資源命名資源訪問常用資源類型14字符串(string)資源字符串資源用來用于應(yīng)用中的一些字符串常量,字符串資源文件文件位于res/values目錄下的strings.xml,根元素是<resources></resources>標(biāo)記,在該元素中,使用<string></string>標(biāo)記定義各字符串,其中,通過為<string></string>標(biāo)記設(shè)置name屬性來指定字符串的名稱,在起始標(biāo)記<string>和結(jié)束標(biāo)記</string>中間添加字符串的內(nèi)容。范例: <resources><stringname=“hello”>HelloWorld!</string><stringname=“app_name”>購物商城</string></resource>15字符串(string)資源

在Java文件中使用字符串資源的語法格式如下:[<package>.]R.string.字符串名在XML文件中使用字符串資源的基本語法格式如下:@[<package>:]string/字符串名示例:<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="@string/hello"/>16字符串(string)資源

對String中包含的特殊符號如何處理。如果在聲明的string資源包含雙引號、回車換行等符號,需要使用轉(zhuǎn)義符號“\”<stringname=“hello”>\“HelloWorld,main!\”\n\riamhy!</string>

顯示結(jié)果:“HelloWorld,main!”iamhy!17字符串(string)資源

如果在String資源中包含動態(tài)參數(shù),需要使用“%*$s”來作為參數(shù)的占為符號,其中*代表參數(shù)的編號,從1開始計數(shù)。<stringname="format_string">Hello%2$shaha.%1$sagain</string>要引用上面聲明的String資源,需要使用String類的format方法Stringtemp=this.getString(R.string.format_string);StringsubstitutedString=String.format(temp,"Hello","Android");1819顏色(color)資源顏色值的定義在Android中,顏色值通過RGB(紅、綠、藍(lán))三原色和一個透明度(Alpha)值表示。它必須以井號“#”開頭,后面接Alpha-Red-Green-Blue形式的內(nèi)容。20顏色(color)資源定義顏色資源文件顏色資源文件位于res/values目錄下,一般命名為color.xml根元素是<resources></resources>標(biāo)記,在該元素中,使用<color></color>標(biāo)記定義各顏色資源,其中,通過為<color></color>標(biāo)記設(shè)置name屬性來指定顏色資源的名稱,在起始標(biāo)記<color>和結(jié)束標(biāo)記</color>中間添加顏色值。21顏色(color)資源使用顏色資源在Java文件中使用顏色資源的語法格式如下:[<package>.]R.color.顏色資源名在XML文件中使用顏色資源的基本語法格式如下:@[<package>:]color/顏色資源名尺寸(dimen)資源Android支持的尺寸單位px(Pixels,像素):每個px對應(yīng)屏幕上的一個點。dip或dp(設(shè)備獨立像素):一種基于屏幕密度的抽象單位。在每英寸160點的顯示器上,1dip=1px。但隨著屏幕密度的改變,dip與px的換算也會發(fā)生改變。sp(比例像素):主要處理字體的大小,可以根據(jù)用戶字體大小首選項進行縮放。in(Inches,英寸):標(biāo)準(zhǔn)長度單位。每英寸等于2.54厘米。pt(points,磅):屏幕物理長度單位,1/72英寸。mm(Millimeters,毫米):屏幕物理長度單位。22尺寸(dimen)資源定義尺寸資源文件尺寸資源文件位于res/values目錄下,根元素是<resources></resources>標(biāo)記,在該元素中,使用<dimen></dimen>標(biāo)記定義各尺寸資源,其中,通過為<dimen></dimen>標(biāo)記設(shè)置name屬性來指定尺寸資源的名稱,在起始標(biāo)記<dimen>和結(jié)束標(biāo)記</dimen>中間定義一個尺寸常量。定義尺寸資源文件的范例如下:23尺寸(dimen)資源使用尺寸資源文件在Java文件中使用尺寸資源的語法格式如下:[<package>.]R.dimen.尺寸資源名在XML文件中使用尺寸資源的基本語法格式如下:@[<package>:]dimen/尺寸資源名使用尺寸資源文件的范例如下24尺寸(dimen)資源文件夾的含義25提供備用資源幾乎每個應(yīng)用都應(yīng)提供備用資源以支持特定的設(shè)備配置。例如,對于不同的屏幕密度和語言,您應(yīng)分別包括備用可繪制對象資源和備用字符串資源。在運行時,Android會檢測當(dāng)前設(shè)備配置并為應(yīng)用加載合適的資源。為一組資源指定特定于配置的備用資源:在res/中創(chuàng)建一個以<resources_name>-<config_qualifier>形式命名的新目錄。

<resources_name>是相應(yīng)默認(rèn)資源的目錄名稱(如表1中所定義)。

<qualifier>是指定要使用這些資源的各個配置的名稱。您可以追加多個<qualifier>。以短劃線將其分隔。將相應(yīng)的備用資源保存在此新目錄下。這些資源文件的名稱必須與默認(rèn)資源文件完全一樣。例如,以下是一些默認(rèn)資源和備用資源:res/

drawable/

icon.png

background.png

drawable-hdpi/

icon.png

background.pnghdpi限定符表示該目錄中的資源適用于屏幕密度較高的設(shè)備。其中每個可繪制對象目錄中的圖像已針對特定的屏幕密度調(diào)整大小,但是文件名完全相同。這樣一來,用于引用icon.png或background.png圖像的資源ID始終相同,但是Android會通過將設(shè)備配置信息與資源目錄名稱中的限定符進行比較,選擇最符合當(dāng)前設(shè)備的各個資源版本。26資源限定符:27ConfigurationQualifierValuesMCCandMNCExamples:

mcc310,mcc310-mnc004,mcc208-mnc00LanguageandregionExamples:

en,fr,en-rUS,fr-rFR,fr-rCALayoutDirectionLdrtl,ldltrsmallestWidthsw<N>dp

,Examples:sw320dp,sw600dp,sw720dpAvailablewidthw<N>dpExamples:w720dp,w1024dpAvailableheighth<N>dp

Examples:,h720dp,h1024dpScreensizeSmall,normal,large,xlargeScreenaspectLong,notlongRoundscreenRound,notroundWideColorGamutWidecg,nowidecgHighDynamicRange(HDR)Highdr,lowdrScreenorientationPort,landUImodeCar,desk,television,appliance,watch,vrheadsetNightmodeNight,notnightScreenpixeldensity(dpi)Ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi,nodpi,tvdpi

anydpiTouchscreentypeNotouch,fingerKeyboardavailabilityKeysexposed,keyshidden,keyssoftPrimarytextinputmethodNokeys,qwerty,12keyNavigationkeyavailabilityNavexposed,navhiddenPrimarynon-touchnavigationmethodNonav,dpad,trackball,wheelPlatformVersion(APIlevel)v3,v4,v7布局(Layout)資源在Android中,將布局資源文件放置在res/layout目錄下,布局資源文件的根元素通常是各種布局管理器,在該布局管理器中,通常是各種View組件或是嵌套的其他布局管理器。在Java代碼中,可以通過下面的語法格式訪問布局資源。[<package>.]R.layout.<文件名>在XML文件中,可以通過下面的語法訪問布局資源文件。@[<package>:]layout.文件名28數(shù)組(array)資源數(shù)組資源文件位于res/values/arrays.xml文件中,根元素是<resources></resources>標(biāo)記,在該元素中,包括以下3個子元素。<array/>子元素:用于定義普通類型的數(shù)組。<integer-array/>子元素,用于定義整數(shù)數(shù)組。<string-array/>子元素,用于定義字符串?dāng)?shù)組。數(shù)組資源定義范例如下29數(shù)組(array)資源使用數(shù)組資源在Java文件中使用數(shù)組資源的語法格式如下:[<package>.]R.array.數(shù)組名在XML文件中使用數(shù)組資源的基本語法格式如下:@[<package>:]array/數(shù)組名使用數(shù)組資源范例如下:30Drawable資源Drawable資源主要保存圖片相關(guān)資源,資源文件位于res/drawable文件夾中。4.0后,新建android工程,會自動生成drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi六個文件夾。除drawable外,其他5個文件夾對應(yīng)四種級別的density:120dip(low),160dip(medium),240dip(high),320dip(xhigh),480dip(drawable-xxhdpi)。目前主流做法都是把圖片文件放在drawable-hdpi文件夾內(nèi)Drawable資源設(shè)定范例如下31Drawable資源在Java文件中訪問圖片資源的語法格式如下:[<package>.]R.drawable.<文件名>在XML文件中訪問圖片資源的基本語法格式如下:@[<package>:]drawable.文件名32原始XML資源在定義資源文件時,我們使用的也是XML文件,這些文件不屬于這里我們要介紹的原始XML資源。這里所說的原始XML資源,是指一份格式良好的,沒有特殊要求的普通XML文件。它一般保存在res/xml目錄(在創(chuàng)建Android項目時,沒有自動創(chuàng)建xml目錄,需要我們手動創(chuàng)建)中,通過Resources.getXml()方法來訪問。33原始XML資源-解析示例34XmlPullParserxmlPullParser=getResources().getXml(R.xml.words);

try{

while(xmlPullParser.getEventType()!=XmlPullParser.END_DOCUMENT){//判斷是否能達(dá)文檔結(jié)尾

if(xmlPullParser.getEventType()==XmlPullParser.START_TAG){//判斷是否是元素的起始標(biāo)志

if(xmlPullParser.getName().equals("word")){//判斷元素名稱

Log.d(ResourceActivity.class.toString(),xmlPullParser.getAttributeValue(0));//取得屬性值

}

}

xmlPullParser.next();

}

}catch(Exceptione){

e.printStackTrace();

}<words>

<wordvalue="lorem"/>

<wordvalue="ipsum"/>

<wordvalue="dolor"/></words>菜單資源定義菜單資源文件菜單資源文件通常應(yīng)該放置在res/menu目錄下,在創(chuàng)建項目時,默認(rèn)是不自動創(chuàng)建menu目錄的,所以需要我們手動創(chuàng)建。菜單資源的根元素通常是<menu></menu>標(biāo)記,在該標(biāo)記中可以包含以下兩個子元素。<item></item>標(biāo)記:用于定義菜單項。35屬性描述android:id用于為菜單項設(shè)置ID,也就是唯一標(biāo)識android:title用于為菜單項設(shè)置標(biāo)題android:alphabeticShortcut用于為菜單項指定字符快捷鍵android:numericShortcut用于為菜單項指定數(shù)字快捷鍵android:icon用于為

溫馨提示

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

評論

0/150

提交評論