Android項(xiàng)目驅(qū)動(dòng)教程_第1頁(yè)
Android項(xiàng)目驅(qū)動(dòng)教程_第2頁(yè)
Android項(xiàng)目驅(qū)動(dòng)教程_第3頁(yè)
Android項(xiàng)目驅(qū)動(dòng)教程_第4頁(yè)
Android項(xiàng)目驅(qū)動(dòng)教程_第5頁(yè)
已閱讀5頁(yè),還剩515頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Android項(xiàng)目驅(qū)動(dòng)教程(jiàochéng)

第一講共五百二十頁(yè)教學(xué)要求講課+上機(jī)=90學(xué)時(shí)講課:50個(gè)學(xué)時(shí)上機(jī):40個(gè)學(xué)時(shí)基本練習(xí)+完整項(xiàng)目每一章知識(shí)的實(shí)訓(xùn)項(xiàng)目期末(qīmò)項(xiàng)目成績(jī)平時(shí)成績(jī)(40%):平時(shí)練習(xí)+考勤考試成績(jī)(60%):閉卷(現(xiàn)場(chǎng)編寫完成一個(gè)項(xiàng)目)課程(kèchéng)導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論背景知識(shí)(zhīshi):移動(dòng)應(yīng)用開發(fā)技術(shù)共五百二十頁(yè)移動(dòng)(yídòng)通信技術(shù)背景2014年底,我國(guó)手機(jī)用戶數(shù)已經(jīng)達(dá)到了12.86億戶,移動(dòng)電話用戶普及率達(dá)94.5部/百人現(xiàn)有移動(dòng)通信網(wǎng)絡(luò)分2G、3G、4G三種,4G是第四代移動(dòng)電話行動(dòng)通信標(biāo)準(zhǔn)的簡(jiǎn)稱,該技術(shù)集3G與WLAN于一體,并能夠快速傳輸數(shù)據(jù)、高質(zhì)量的音頻、視頻和圖像等。4G理論(lǐlùn)上能夠以100Mbps以上的速度下載,比4兆的家用寬帶ADSL快25倍,并能夠滿足幾乎所有用戶對(duì)于無(wú)線服務(wù)的要求除了支持傳統(tǒng)的通信業(yè)務(wù)之外,4G的無(wú)線高速業(yè)務(wù)也將會(huì)在移動(dòng)終端上產(chǎn)生新的應(yīng)用,如流媒體點(diǎn)播應(yīng)用,與物聯(lián)網(wǎng)、云計(jì)算和大數(shù)據(jù)的綜合應(yīng)用等課程導(dǎo)論共五百二十頁(yè)移動(dòng)(yídòng)應(yīng)用程序的平臺(tái)(一)JavaME:是Java2,MicroEdition的縮寫,于1999年6月在JavaOne開發(fā)者大會(huì)上公布,它和標(biāo)準(zhǔn)版的J2SE、企業(yè)版的J2EE一起構(gòu)成Java技術(shù)的三大版本。Symbian:Symbian公司成立于1998年6月,是由愛立信、摩托羅拉、諾基亞等公司共同持股組成(zǔchénɡ)的合資公司。2008年6月Symbian公司被諾基亞全資收購(gòu),成為其旗下公司。Symbian曾經(jīng)是手機(jī)領(lǐng)域中應(yīng)用范圍最廣的操作系統(tǒng)。Symbian主要支持的開發(fā)語(yǔ)言為C++和Java。WindowsPhone:早期版本是微軟公司在2003年6月發(fā)布的WindowsMobile,最新版本是Windows10Mobile。WindowsPhone主要支持的開發(fā)語(yǔ)言為C#、C++、C和VB。課程導(dǎo)論共五百二十頁(yè)移動(dòng)(yídòng)應(yīng)用程序的平臺(tái)(二)iPhone:由蘋果公司在2007年1月上宣布推出。iPhone使用了眾多增強(qiáng)用戶體驗(yàn)的領(lǐng)先技術(shù),多觸點(diǎn)式觸摸屏技術(shù)允許用戶同時(shí)通過(guò)多個(gè)觸點(diǎn)進(jìn)行操作,基于傳感器的隱式輸入技術(shù)提高了手機(jī)的智能水平,全新用戶界面設(shè)計(jì)技術(shù)提高了手機(jī)使用的易用性,手機(jī)應(yīng)用商店提供了源源不斷的實(shí)用程序。iPhone將原來(lái)(yuánlái)普通的手機(jī)電話變成一個(gè)潮流時(shí)尚且功能強(qiáng)大的隨身工具,引起了手機(jī)設(shè)計(jì)領(lǐng)域的一次新變革。iPhone主要支持的開發(fā)語(yǔ)言為Objective-C、C、C++、JavaScript。課程導(dǎo)論共五百二十頁(yè)移動(dòng)(yídòng)應(yīng)用程序的平臺(tái)(三)Android:是Google公司于2007年11月宣布(xuānbù)的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android產(chǎn)品線較為豐富,覆蓋到商務(wù)、時(shí)尚、娛樂、中低端市場(chǎng)等各種人群。Android的優(yōu)勢(shì)在于對(duì)第三方軟件完全開放,免費(fèi)向開發(fā)人員提供,而且集成了大量的Google應(yīng)用:Google地圖Gmail郵箱等Android主要支持的開發(fā)語(yǔ)言為Java和C++課程導(dǎo)論共五百二十頁(yè)手機(jī)(shǒujī)應(yīng)用商店手機(jī)應(yīng)用商店為程序開發(fā)者提供(tígōng)了更大的平臺(tái),程序開發(fā)者可將手機(jī)應(yīng)用程序發(fā)布到網(wǎng)站上,分享自己的作品,通過(guò)用戶下載程序來(lái)和服務(wù)商按一定的比例進(jìn)行收益分配,此舉大大激發(fā)了程序開發(fā)者的積極性。課程導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論典型(diǎnxíng)移動(dòng)應(yīng)用案例術(shù)共五百二十頁(yè)移動(dòng)(yídòng)辦公移動(dòng)(yídòng)辦公是指辦公人員可以隨時(shí)隨地處理與業(yè)務(wù)有關(guān)的事情。課程導(dǎo)論

共五百二十頁(yè)個(gè)人(gèrén)應(yīng)用針對(duì)手機(jī)自帶軟件功能(gōngnéng)的不足,設(shè)計(jì)開發(fā)出新的功能(gōngnéng),為日常生活中的“衣、食、住、行”提供便利,擔(dān)任智能化助手的角色。課程導(dǎo)論

共五百二十頁(yè)手機(jī)游戲手機(jī)游戲的優(yōu)勢(shì)是提供娛樂休閑,在坐車、等人的空虛時(shí)間可以(kěyǐ)打發(fā)時(shí)間。課程(kèchéng)導(dǎo)論

共五百二十頁(yè)課程(kèchéng)導(dǎo)論安裝(ānzhuāng)SunJDK共五百二十頁(yè)任務(wù)分析本次任務(wù)要求完成JDK的下載、安裝和配置。要完成本次任務(wù),需要思考如下幾個(gè)問(wèn)題(wèntí):JDK是什么軟件,對(duì)于本項(xiàng)目有何作用?從何處獲得合適的JDK?JDK對(duì)電腦硬件和操作系統(tǒng)的安裝要求?如何安裝JDK?如何配置JDK?課程(kèchéng)導(dǎo)論共五百二十頁(yè)JDKJDK(JavaDevelopmentKit)就是為Java開發(fā)者提供的一組開發(fā)工具包,包括了Java運(yùn)行環(huán)境(JRE,JavaRuntimeEnvironment),一組Java工具和Java標(biāo)準(zhǔn)API類庫(kù)主流的JDK由Sun公司開發(fā)(注:2009年Sun公司已經(jīng)被著名(zhùmíng)的數(shù)據(jù)庫(kù)公司Oracle收購(gòu))。一些公司和組織也先后推出自己的JDK,例如IBMJDK、GNUJDK。JDK有適合于Windows、Linux、Solaris等不同操作系統(tǒng)的版本。課程(kèchéng)導(dǎo)論共五百二十頁(yè)Java運(yùn)行(yùnxíng)環(huán)境包含一個(gè)Java虛擬機(jī)(JVM,JavaVirtualMachine)和運(yùn)行Java程序所需類庫(kù)Java虛擬機(jī)的主要作用是解釋字節(jié)碼(bytecode),實(shí)現(xiàn)Java程序的跨平臺(tái)。Java標(biāo)準(zhǔn)API類庫(kù):API(ApplicationProgrammingInterface)又稱應(yīng)用程序編程接口,通過(guò)提供一些預(yù)先定義的函數(shù),達(dá)到簡(jiǎn)化開發(fā)人員工作的目的。開發(fā)人員無(wú)需訪問(wèn)源碼或理解內(nèi)部工作機(jī)制的細(xì)節(jié),通過(guò)調(diào)用API就可以實(shí)現(xiàn)程序的特定功能(gōngnéng)。編程語(yǔ)言或二次開發(fā)的軟硬件環(huán)境一般會(huì)提供相應(yīng)的API。JRE一般是包含在JDK中,也可以獨(dú)立安裝JRE。課程導(dǎo)論共五百二十頁(yè)任務(wù)(rènwu)實(shí)施(一)下載(xiàzǎi)SunJDK:課程導(dǎo)論共五百二十頁(yè)任務(wù)(rènwu)實(shí)施(二)安裝JDK軟件(ruǎnjiàn):雙擊上一步所下載的JDK文件【jdk-6u21-windows-i586.exe】課程導(dǎo)論共五百二十頁(yè)任務(wù)(rènwu)實(shí)施(三)配置環(huán)境變量:主要(zhǔyào)是需要配置兩個(gè)環(huán)境變量,一個(gè)是PATH,另外一個(gè)是CLASSPATHPATH的作用是表示JDK命令的所在路徑(安裝JDK的bin目錄)。CLASSPATH的作用是表示JDK類庫(kù)的所在路徑(安裝JDK的lib目錄)。課程導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論安裝(ānzhuāng)Android開發(fā)環(huán)境共五百二十頁(yè)任務(wù)分析本次任務(wù)是要求完成Android開發(fā)軟件的下載(xiàzǎi)、安裝和配置。要完成本次任務(wù),需要思考如下幾個(gè)問(wèn)題:Eclipse和AndroidSDK是什么軟件,與任務(wù)一的JDK軟件有何關(guān)系,對(duì)Android項(xiàng)目開發(fā)有何作用?從何處獲得正確的Android開發(fā)軟件?Android開發(fā)軟件對(duì)電腦的硬件和操作系統(tǒng)的安裝要求?如何安裝Android開發(fā)軟件?如何配置Android開發(fā)軟件?課程(kèchéng)導(dǎo)論共五百二十頁(yè)IDE集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)旨在提供一個(gè)綜合的圖形用戶開發(fā)環(huán)境,方便程序員進(jìn)行軟件開發(fā)。一般集成了程序生成器、代碼(dàimǎ)編輯器、編譯器、調(diào)試器和發(fā)布器等,具有代碼(dàimǎ)編寫、管理、分析、編譯、調(diào)試和發(fā)布等功能。著名的IDE開發(fā)環(huán)境有微軟的VisualStudio.NET,Boland的JBuilder等。開發(fā)Java程序常用的IDE工具有Eclipse、MyEclipse、NetBeans。Google公司在2013年5月推出了針對(duì)Android的IDE開發(fā)工具:AndroidStudio課程(kèchéng)導(dǎo)論共五百二十頁(yè)EclipseEclipse最初是由IBM公司開發(fā),2001年捐獻(xiàn)給開源社區(qū),現(xiàn)由Eclipse基金會(huì)管理。Eclipse所提供的項(xiàng)目致力于建立開放的開發(fā)平臺(tái)(píngtái),具有可擴(kuò)展性的框架、工具和運(yùn)行環(huán)境的建立、發(fā)布以及軟件生命周期的管理。Eclipse社區(qū)提供了適合J2EE、Java、JavaME、C/C++、JavaScript等語(yǔ)言的IDE開發(fā)工具。Eclipse很重要的一個(gè)特色是通過(guò)插件來(lái)擴(kuò)展開發(fā)平臺(tái)的功能。Eclipse本身只是一個(gè)框架平臺(tái),運(yùn)行在Eclipse平臺(tái)上的各種插件提供我們開發(fā)程序的各種功能。Eclipse的發(fā)行版本帶有最基本的插件,軟件開發(fā)人員可以在此基礎(chǔ)上通過(guò)開發(fā)插件建立自己的IDE。課程(kèchéng)導(dǎo)論共五百二十頁(yè)建立Android的開發(fā)(kāifā)環(huán)境目前提供了兩種配置Android開發(fā)環(huán)境的方法。一種做法:分別下載Eclipse和Android的SDK,然后在Eclipse的菜單中選擇Help->InstallNewSoftware…,輸入/Android/eclipse/來(lái)安裝(ānzhuāng)Android的開發(fā)插件ADT,最后在Eclipse的菜單中選擇Windows->Preferences來(lái)指定已經(jīng)安裝好的AndroidSDK的所在路徑。第二種方法:下載Eclipse的Android集成開發(fā)包,包括:Eclipse開發(fā)工具,并且已經(jīng)配置好AndroidADT,以及指定好AndroidSDK的所在路徑。由此可見該方法更加簡(jiǎn)單快捷。但目前在Android的官網(wǎng)上只提供AndroidStudio的集成開發(fā)包,不再提供Eclipse的Android開發(fā)集成包??梢栽诎俣壬陷斎胂旅娴乃阉髯郑骸盇ndroidADTBundle下載”課程導(dǎo)論共五百二十頁(yè)Eclipse的快捷鍵Ctrl+Shift+O:自動(dòng)導(dǎo)入代碼中用到類的所屬包,此組合鍵在編程中非常有用。Alt+/:代碼助手完成一些代碼的提示(tíshì)插入,例如類名補(bǔ)全,方法提示(tíshì)等。Ctrl+Shift+F:格式化當(dāng)前代碼,使代碼整齊。Ctrl+/:注釋當(dāng)前行,再按則取消注釋。Ctrl+D:刪除當(dāng)前行。Ctrl+T快速顯示當(dāng)前類的繼承結(jié)構(gòu)。課程(kèchéng)導(dǎo)論共五百二十頁(yè)任務(wù)(rènwu)實(shí)施(一)AndroidSDK的下載:登錄(dēnɡlù)Android的下載主頁(yè):/sdk/index.html課程導(dǎo)論共五百二十頁(yè)同意協(xié)議,并選擇平臺(tái)版本,即可以(kěyǐ)點(diǎn)擊下載課程(kèchéng)導(dǎo)論共五百二十頁(yè)下載(xiàzǎi)SDK后,配置Android開發(fā)環(huán)境首先將下載(xiàzǎi)壓縮文件進(jìn)行解壓,會(huì)看到如下結(jié)構(gòu):課程導(dǎo)論進(jìn)入eclipse目錄,點(diǎn)擊eclipse.exe文件打開IDE開發(fā)環(huán)境,即可進(jìn)行Android開發(fā)。如果需要建立多種Android平臺(tái)版本,可以點(diǎn)擊Eclipse菜單的Window->AndroidSDKManager來(lái)下載其他版本的Android。如果需要建立不同尺寸或者版本的模擬器,可以點(diǎn)擊Eclipse菜單的Window->AndroidVirtualDeviceManager進(jìn)行配置共五百二十頁(yè)AndroidSDKManager課程(kèchéng)導(dǎo)論共五百二十頁(yè)AndroidVirtualDeviceManager課程(kèchéng)導(dǎo)論共五百二十頁(yè)AndroidStudio感興趣的同學(xué)也可以嘗試使用來(lái)進(jìn)行Android開發(fā),下載的網(wǎng)址是:/sdk/installing/studio.html。AndroidStudio采用(cǎiyòng)的是intellijIDE的開發(fā)工具,而IntelliJ在業(yè)界被公認(rèn)為最好的java開發(fā)工具之一,它的運(yùn)行速度要較Eclipse快。課程(kèchéng)導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論測(cè)試(cèshì)開發(fā)環(huán)境共五百二十頁(yè)任務(wù)分析要看前面任務(wù)的軟件安裝配置是否能夠正常工作,一個(gè)比較簡(jiǎn)單直接的方法是嘗試通過(guò)IDE開發(fā)環(huán)境開發(fā)一個(gè)Android程序:開發(fā)一個(gè)Android程序的主要步驟?如何運(yùn)行(yùnxíng)一個(gè)Android程序?如何調(diào)試一個(gè)Android程序?課程(kèchéng)導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論Android基本(jīběn)概念共五百二十頁(yè)Android基本概念A(yù)ndroid是一個(gè)用于移動(dòng)設(shè)備的軟件集,包括操作系統(tǒng),中間件和關(guān)鍵的應(yīng)用程序。AndroidSDK提供了必須的工具和APIs用于在Android平臺(tái)上使用Java編程語(yǔ)言開發(fā)應(yīng)用程序Android具有如下的特征允許重用和替換組件的應(yīng)用程序框架具有專門為移動(dòng)設(shè)備優(yōu)化的Dalvik虛擬機(jī)集成基于開源引擎WebKit的瀏覽器通過(guò)自定義的2D圖形庫(kù)優(yōu)化顯示圖形,提供基于OpenGLES1.0和2.0規(guī)范的3D圖形支持用于結(jié)構(gòu)數(shù)據(jù)存儲(chǔ)的SQLite為常見的聲音,視頻和圖形格式,例如:MPEG4,MP3,PNGGSM、CDMA、TDSCDMA電話(依賴于硬件)藍(lán)牙、EDGE、3G和WiFi(依賴于硬件)照相機(jī)、GPS、指南針和加速度傳感器(依賴于硬件)豐富的開發(fā)環(huán)境(huánjìng):設(shè)備模擬器、調(diào)試工具、內(nèi)存和性能分析課程(kèchéng)導(dǎo)論共五百二十頁(yè)Android的主要(zhǔyào)版本發(fā)展課程(kèchéng)導(dǎo)論

共五百二十頁(yè)Android的體系結(jié)構(gòu)課程(kèchéng)導(dǎo)論共五百二十頁(yè)Android體系結(jié)構(gòu)各層功能(gōngnéng)說(shuō)明(一)應(yīng)用程序(APPLICATIONS):是Android推出的一組使用Java編寫的核心應(yīng)用程序,如:Email客戶端,短信程序,日歷,地圖,通信錄。應(yīng)用程序框架(ApplicationFramework):是Android為開發(fā)者提供的一個(gè)開放平臺(tái),在應(yīng)用程序的下一層。開放者可以通過(guò)它們自由地充分利用設(shè)備硬件,訪問(wèn)(fǎngwèn)位置信息,運(yùn)行后臺(tái)服務(wù),設(shè)置告警,在狀態(tài)欄上增加通知等。開發(fā)者可以和核心應(yīng)用程序那樣調(diào)用同樣的框架APIs。應(yīng)用程序框架提供的是一組服務(wù)和系統(tǒng),這些會(huì)在程序開發(fā)過(guò)程中直接使用到,包括:豐富且具有可擴(kuò)展性的視圖:可用于構(gòu)建應(yīng)用程序的界面內(nèi)容提供者:允許應(yīng)用程序訪問(wèn)其它應(yīng)用程序的數(shù)據(jù)(例如:通信錄),或者共享它們自己的數(shù)據(jù)資源管理器:提供對(duì)非代碼資源,如本地化字符串,圖像的管理通知管理器:允許應(yīng)用程序在狀態(tài)欄上顯示定制的警報(bào)?;顒?dòng)管理器:管理應(yīng)用程序的生命周期,提供導(dǎo)航回退功能課程導(dǎo)論共五百二十頁(yè)Android體系結(jié)構(gòu)各層功能(gōngnéng)說(shuō)明(二)Libraries:Android包括的一組C/C++庫(kù),它們用于Android系統(tǒng)不同的組件。這些功能通過(guò)Android應(yīng)用程序框架對(duì)開發(fā)者開放,包括:C語(yǔ)言系統(tǒng)庫(kù)、多媒體庫(kù)、外觀管理器、LibWebCore、SGL、3D庫(kù)、FreeType、SQLite等。

AndroidRuntime:Android包括的一組核心庫(kù),提供大部分Java編程語(yǔ)言核心庫(kù)的功能。每一個(gè)Android應(yīng)用程序是在Dalvik虛擬機(jī)的實(shí)例下以進(jìn)程形式運(yùn)行。Dalvik虛擬機(jī)執(zhí)行的文件是Dalvik可執(zhí)行格式(DalvikExecutable,稱為.dex),它被優(yōu)化成最小內(nèi)存占用。與Java虛擬機(jī)時(shí)基于堆棧不同,Dalvik虛擬機(jī)是基于寄存器的,它通過(guò)轉(zhuǎn)換工具dx將Java字節(jié)碼轉(zhuǎn)換成dex格式。Linux內(nèi)核:Android依賴于Linux某個(gè)版本的核心系統(tǒng)服務(wù),例如(lìrú):安全、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)程序模型。內(nèi)核也作為硬件和軟件堆棧其余部分之間的抽象層。課程導(dǎo)論共五百二十頁(yè)對(duì)Android應(yīng)用程序的理解(lǐjiě)Android應(yīng)用程序主要是由Java語(yǔ)言編寫,但對(duì)于特殊性能要求的功能,也可以先使用C或者C++編寫代碼,建立動(dòng)態(tài)庫(kù),再通過(guò)NDK將其與Java應(yīng)用一起打包成apk。AndroidSDK工具將代碼、數(shù)據(jù)和資源文件編譯為一個(gè)Android包,它是一個(gè)后綴為.apk的歸檔文件。.apk歸檔文件將被用在設(shè)備上安裝應(yīng)用程序。Android應(yīng)用程序是可以訪問(wèn)系統(tǒng)(xìtǒng)服務(wù)的,例如:應(yīng)用程序可以請(qǐng)求訪問(wèn)用戶的通訊錄,短信,SD存儲(chǔ)卡,攝像頭,藍(lán)牙,以及更多的設(shè)備,但要求用戶在安裝應(yīng)用程序時(shí)必須被授予相應(yīng)的權(quán)限。課程導(dǎo)論共五百二十頁(yè)Android的組件(zǔjiàn)應(yīng)用程序組件是一個(gè)Android應(yīng)用程序的重要基石,在編程時(shí)根據(jù)需要編寫相應(yīng)的組件。有四種不同類型的應(yīng)用程序組件。每個(gè)類型服務(wù)于不同的目的:Activity:活動(dòng)表示一個(gè)用戶界面,可以和用戶進(jìn)行交互。例如,Email應(yīng)用程序可以有一個(gè)顯示(xiǎnshì)新郵件的activity,一個(gè)撰寫電子郵件的activity和一個(gè)閱讀郵件的activity。雖然這些activities一起為Email應(yīng)用程序提供用戶體驗(yàn),但它們每個(gè)都是相互獨(dú)立Service:服務(wù)是一個(gè)運(yùn)行在后臺(tái)的組件(并不提供用戶界面),一般用于執(zhí)行需要長(zhǎng)時(shí)間運(yùn)行的操作或執(zhí)行遠(yuǎn)程進(jìn)程的工作。例如:某個(gè)service可能會(huì)在后臺(tái)播放音樂。Contentprovider:內(nèi)容提供者管理應(yīng)用程序共享的數(shù)據(jù)集。例如:讀取系統(tǒng)自帶的聯(lián)系人信息。Broadcastreceiver:廣播接收者是一個(gè)負(fù)責(zé)全系統(tǒng)廣播通知的組件。例如:廣播電池沒有電。課程導(dǎo)論共五百二十頁(yè)認(rèn)識(shí)(rènshi)手機(jī)模擬器手機(jī)模擬器(MobileEmulator)的作用是在電腦上模擬手機(jī)環(huán)境,從而可以在電腦上進(jìn)行手機(jī)程序開發(fā)、調(diào)試和發(fā)布。針對(duì)不同平臺(tái)版本(bǎnběn)、不同尺寸的手機(jī)有不同的手機(jī)模擬器。課程導(dǎo)論共五百二十頁(yè)Activity應(yīng)用程序的生命周期Activity是Android程序圖形用戶界面的基本組成部件(bùjiàn)。Android程序由一個(gè)或者多個(gè)Activity類組成,而程序都是從Activity類開始執(zhí)行,系統(tǒng)規(guī)定了Activity的生命周期有創(chuàng)建,開始,喚醒,暫停和銷毀五種狀態(tài)。Android定義了一系列與生命周期相關(guān)的方法,在我們自己的Activity中,只是根據(jù)需要重寫需要的方法來(lái)實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)初始化,和回收等操作。開發(fā)一個(gè)Android程序,首選需要?jiǎng)?chuàng)建一個(gè)繼承于Activity的類。以下為編寫Activity程序,并實(shí)現(xiàn)其生命周期相應(yīng)操作的示例:課程(kèchéng)導(dǎo)論共五百二十頁(yè)Activity應(yīng)用程序的生命周期代碼(dàimǎ)示例課程(kèchéng)導(dǎo)論publicclassMyActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){//一個(gè)Activity的實(shí)例啟動(dòng)時(shí)調(diào)用的第一個(gè)方法。一般情況下,在這里編寫初始化數(shù)據(jù)、從Xml布局文件中加載設(shè)計(jì)好的用戶界面等方面的操作}protectedvoidonStart(){

//在onCreate()方法執(zhí)行之后被調(diào)用,或者在Activity從Stop狀態(tài)轉(zhuǎn)換為Active狀態(tài)時(shí)被調(diào)用}protectedvoidonResume(){

//在Activity從Pause狀態(tài)轉(zhuǎn)換到Active狀態(tài)時(shí)被調(diào)用,或者在onStart()方法執(zhí)行之后被調(diào)用。onResume()方法也較為適合放入初始化數(shù)據(jù)的操作}protectedvoidonPause(){

//從Active狀態(tài)轉(zhuǎn)換到Pause狀態(tài)時(shí)被調(diào)用}protectedvoidonStop(){

//從Active狀態(tài)轉(zhuǎn)換到Stop狀態(tài)時(shí)被調(diào)用,一般在這里保存Activity的狀態(tài)信息}protectedvoidonRestart(){//當(dāng)處于stop狀態(tài)時(shí),當(dāng)前Activity被重新向用戶顯示時(shí)調(diào)用該方法}protectedvoidonDestroy(){

//在Activity結(jié)束時(shí)調(diào)用,在這里一般做些釋放資源,清理內(nèi)存等工作}}共五百二十頁(yè)Activity應(yīng)用程序的生命周期課程(kèchéng)導(dǎo)論共五百二十頁(yè)開發(fā)(kāifā)第一個(gè)Android程序第一步是選擇創(chuàng)建(chuàngjiàn)一個(gè)AndroidApplicationProject項(xiàng)目,在創(chuàng)建向?qū)е兄付☉?yīng)用程序名稱、包名稱、運(yùn)行的Android版本等信息。第二步是根據(jù)項(xiàng)目的需要在Activity類中編寫代碼,或者新創(chuàng)建其它類,在Activity類中進(jìn)行引用。課程導(dǎo)論共五百二十頁(yè)Android項(xiàng)目主要目錄(mùlù)的作用課程(kèchéng)導(dǎo)論共五百二十頁(yè)自動(dòng)(zìdòng)生成的代碼publicclassMainActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

}publicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;

}}課程(kèchéng)導(dǎo)論共五百二十頁(yè)代碼(dàimǎ)分析MainActivity類繼承了Activity抽象類。setContentView方法(fāngfǎ)是設(shè)置用戶界面,其中參數(shù)R.layout.activity_main是一個(gè)表示界面布局信息的XML文件。在Android開發(fā)中,界面設(shè)計(jì)很多是依靠布局文件來(lái)完成。這在后面的項(xiàng)目中有詳細(xì)的介紹。onCreateOptionsMenu方法是創(chuàng)建程序的菜單,其中R.menu.main也是一個(gè)描述菜單信息的XML文件。onCreateOptionsMenu方法在程序中并不是必須的,可以刪除掉。在Android項(xiàng)目中會(huì)自動(dòng)生成一些由XML編寫的配置文件,他們?cè)贏ndroid開發(fā)中起到很重要的作用。課程導(dǎo)論共五百二十頁(yè)AndroidManifest.xml文件(wénjiàn)的作用AndroidManifest.xml文件可以理解為關(guān)于Android應(yīng)用程序的清單文件,用于向Android系統(tǒng)提供關(guān)于應(yīng)用程序的重要信息。例如:一個(gè)Android應(yīng)用程序中一般包含多個(gè)Activity類,要具體區(qū)分Android程序首先執(zhí)行的是哪個(gè)Activity類,程序有哪些Activity類可由系統(tǒng)識(shí)別,系統(tǒng)有哪些權(quán)限可以交由應(yīng)用程序使用,應(yīng)用程序的圖標(biāo)、程序名稱管理、應(yīng)用程序需要用的第三方包等。在Android系統(tǒng)開始啟動(dòng)一個(gè)應(yīng)用程序組件時(shí),系統(tǒng)必須讀取AndroidManifest.xml文件以便知道組件是否存在。任何一個(gè)Android項(xiàng)目(xiàngmù)都需要使用該文件,并要求放在項(xiàng)目(xiàngmù)的根目錄下。課程導(dǎo)論共五百二十頁(yè)XML基礎(chǔ)知識(shí)簡(jiǎn)述(jiǎnshù)標(biāo)記語(yǔ)言采用一套標(biāo)記標(biāo)簽來(lái)表示文本信息,標(biāo)簽是由尖括號(hào)包圍的關(guān)鍵詞,如<html>,其作用是描述文本信息。XML(eXtensibleMarkupLanguage)稱為可擴(kuò)展標(biāo)記語(yǔ)言。XML文檔的后綴是.xml,既可以使用專門的編輯工具,也可以使用文本編輯器對(duì)其進(jìn)行編寫。XML的標(biāo)記沒有被預(yù)定義,用戶可以自行定義標(biāo)記來(lái)描述數(shù)據(jù)。與HTML(HyperTextMarkupLanguage)的差異在于,XML主要用來(lái)存儲(chǔ)規(guī)范的數(shù)據(jù)信息。每個(gè)XML元素都以一個(gè)起始標(biāo)簽開始,以一個(gè)結(jié)束標(biāo)簽收尾。起始標(biāo)記以<符號(hào)(fúhào)開始,以>符號(hào)結(jié)束。結(jié)束標(biāo)簽以</符號(hào)開始,以>符號(hào)結(jié)束。XML元素可以帶有多個(gè)屬性,屬性值需要添加引號(hào)。課程導(dǎo)論共五百二十頁(yè)AndroidManifest.xml文件(wénjiàn)的描述聲明組件:AndroidManifest.xml文件的主要任務(wù)是通知Android系統(tǒng)(xìtǒng)應(yīng)用程序包含的組件??梢赃@樣定義一個(gè)Activity。課程導(dǎo)論<?xmlversion="1.0"encoding="utf-8"?><manifest...><applicationandroid:icon="@drawable/app_icon.png"...><activityandroid:name="ject.ExampleActivity"android:label="@string/example_label"...></activity>...</application></manifest>在<application>元素中,android:icon屬性指明應(yīng)用程序圖標(biāo)用到的資源,在<activity>元素中,android:name屬性指明Activity子類的完整名稱,android:label屬性作為Activity在手機(jī)界面上用戶可見的標(biāo)簽。共五百二十頁(yè)Android應(yīng)用程序的運(yùn)行(yùnxíng)和調(diào)試方法選中Android項(xiàng)目,點(diǎn)擊右鍵,選擇RunAS->AndroidApplicaion。也可以使用Eclipse工具欄上的圖標(biāo)來(lái)運(yùn)行項(xiàng)目選中Android項(xiàng)目,點(diǎn)擊右鍵,選擇DebugAS->AndroidApplicaion。該運(yùn)行方法相當(dāng)于對(duì)Android項(xiàng)目進(jìn)行斷點(diǎn)調(diào)試,以便于找出程序中的問(wèn)題。除了可以利用Java的System.out.println()方法輸出信息之外,還可以利用Android提供的Log.v(Stringtag,Stringmsg)方法以日志方式輸出相應(yīng)的信息,其中參數(shù)tag表示標(biāo)簽,參數(shù)msg表示內(nèi)容,取值都可以在編程中指定。這些信息可以通過(guò)Eclipse的LogCat視圖進(jìn)行查看如果發(fā)現(xiàn)項(xiàng)目的奇怪的報(bào)錯(cuò),可以執(zhí)行Eclipse菜單的Project->Clean菜單項(xiàng),來(lái)重新(chóngxīn)編譯項(xiàng)目課程導(dǎo)論共五百二十頁(yè)實(shí)訓(xùn)項(xiàng)目(xiàngmù)1建立Android開發(fā)環(huán)境(P38)1.實(shí)訓(xùn)目的與要求

學(xué)會(huì)下載、安裝和配置Android開發(fā)環(huán)境所需的軟件,建立Android程序(chéngxù)的開發(fā)環(huán)境。2.實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)內(nèi)容為任務(wù)一、二、三中項(xiàng)目實(shí)施內(nèi)容,按照規(guī)劃任務(wù)內(nèi)容,實(shí)施實(shí)訓(xùn)。課程導(dǎo)論共五百二十頁(yè)實(shí)訓(xùn)項(xiàng)目2開發(fā)運(yùn)行(yùnxíng)一個(gè)簡(jiǎn)單的Android程序1.實(shí)訓(xùn)目的與要求學(xué)會(huì)利用Eclipse自動(dòng)生成一個(gè)Android程序,并使用不同的模擬器運(yùn)行,以便對(duì)Android程序的開發(fā)步驟有初步的認(rèn)識(shí)。2.實(shí)訓(xùn)內(nèi)容實(shí)訓(xùn)內(nèi)容為任務(wù)四中項(xiàng)目實(shí)施內(nèi)容,按照規(guī)劃(guīhuà)任務(wù)內(nèi)容,實(shí)施實(shí)訓(xùn)。3.思考運(yùn)行不同的手機(jī)模擬器對(duì)Android的程序開發(fā)有什么作用?課程導(dǎo)論共五百二十頁(yè)第二(dìèr)講共五百二十頁(yè)項(xiàng)目(xiàngmù)工作情景目標(biāo)是讓學(xué)生掌握利用Android的界面開發(fā)技術(shù)。主要的工作任務(wù)劃分為:開發(fā)輸入界面。進(jìn)行事件處理。顯示計(jì)算結(jié)果。發(fā)布到手機(jī)。主要涉及的關(guān)鍵技術(shù)包括:Activity類的使用布局文件(wénjiàn)的設(shè)計(jì)事件的處理創(chuàng)建菜單。課程導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論背景知識(shí):常見的手機(jī)(shǒujī)硬件參數(shù)知識(shí)共五百二十頁(yè)分辨率手機(jī)屏幕尺寸分為物理尺寸和顯示分辨率兩個(gè)概念。物理尺寸是指屏幕的實(shí)際大小,以屏幕的對(duì)角線長(zhǎng)度作為依據(jù)(比如3.5英寸、4.0英寸)。在屏幕上看到的畫面其實(shí)都是由一個(gè)個(gè)小點(diǎn)組成,這些小點(diǎn)又稱為像素。每個(gè)像素點(diǎn)可以近似看作屏幕上的一個(gè)發(fā)光點(diǎn),點(diǎn)的密度越大,則顯示效果越清晰,在單位面積下顯示內(nèi)容越多。屏幕分辨率反映的是在物理尺寸下可以顯示的像素?cái)?shù)量。分辨率是以乘法形式表現(xiàn),比如手機(jī)常見的320×480,其中“320”表示屏幕上水平方向顯示的點(diǎn)數(shù),“480”表示垂直方向的點(diǎn)數(shù)。分辨率越大表示像素的數(shù)量越多,圖像就越清晰,因此這個(gè)(zhège)指標(biāo)是決定畫面好壞的最主要因素。兩臺(tái)手機(jī)的物理尺寸一樣并不表示其分辨率相同,不同物理尺寸的手機(jī),可以都顯示相同的分辨率,例如:4.3英寸三星i9100和4.0英寸的HTCG11都是具有480×800像素(WVGA)。課程(kèchéng)導(dǎo)論共五百二十頁(yè)分辨率術(shù)語(yǔ)(shùyǔ)VGA:全稱是VideoGraphicsArray,支持640×480像素。是IBM計(jì)算機(jī)的一種顯示標(biāo)準(zhǔn),是現(xiàn)在絕大多數(shù)分辨率的基準(zhǔn)。QVGA:全稱是QuarterVGA,意思是VGA分辨率的四分之一,支持240×320像素。目前大部分的手機(jī)都采用這種分辨率,例如:索尼愛立信S500c、三星S3650C、摩托羅拉A1800、諾基亞E66等。HVGA:全稱是Half-sizeVGA,意思是VGA分辨率的一半(yībàn),為為480×320像素。例如:iPhone、第一款Google手機(jī)T-MobileG1采用這種分辨率。WVGA:全稱是WideVGA,意思是擴(kuò)大了VGA的分辨率,支持480×800像素,例如三星的I9000,HTC的DesireHD等。FWVGA:全稱是FullWideVGA,意思是擴(kuò)大了WVGA的分辨率,支持480×854像素,例如:摩托羅拉的Milestone2,諾基亞N900等。課程導(dǎo)論共五百二十頁(yè)色彩(sècǎi)數(shù)量屏幕顏色是由色階來(lái)決定。色階是表示手機(jī)液晶顯示屏亮度強(qiáng)弱的指數(shù)標(biāo)準(zhǔn),也就是通常所說(shuō)的色彩指數(shù),表示了色彩的豐滿程度。目前手機(jī)的色階指數(shù)從低到高可分為:最低單色,其次是256色、4096色、65536色、26萬(wàn)色、1600萬(wàn)色。256=2的8次方,即8位彩色;依次類推,65536色=2的16次方,即通常所說(shuō)的16位真彩色;26萬(wàn)=2的18次方,也就是18位真彩;1600萬(wàn)=2的24次方,也就是24位真彩。目前手機(jī)能達(dá)到的色彩數(shù)量也是限制美術(shù)人員發(fā)揮的一個(gè)重要瓶頸。將色階高的圖片(túpiàn)放到色階低的手機(jī)上,會(huì)產(chǎn)生圖片(túpiàn)色彩的失真,有的顏色無(wú)法區(qū)分,色偏嚴(yán)重。所以,設(shè)計(jì)人員需要根據(jù)實(shí)際手機(jī)進(jìn)行圖片(túpiàn)繪制。課程導(dǎo)論共五百二十頁(yè)CPU一臺(tái)手機(jī)像電腦一樣具有CPU和內(nèi)存的,特別(tèbié)是智能手機(jī)目前越來(lái)越普遍,更高的CPU硬件配置將成為手機(jī)發(fā)展的一個(gè)趨勢(shì),四核、八核的手機(jī)CPU已出現(xiàn)。CPU具有運(yùn)算器和控制器功能,是手機(jī)的心臟,構(gòu)成了系統(tǒng)的控制中心,對(duì)各部件進(jìn)行統(tǒng)一協(xié)調(diào)和控制。主頻是衡量手機(jī)CPU性能高低的一個(gè)重要技術(shù)參數(shù),頻率越高,表明指令的執(zhí)行速度越快,指令的執(zhí)行時(shí)間也就越短,對(duì)信息的處理能力與效率就高。德州儀器、Marvell公司、高通(QUALCOMM)公司是業(yè)界較有名的手機(jī)CPU廠商。課程(kèchéng)導(dǎo)論共五百二十頁(yè)內(nèi)存(nèicún)手機(jī)上的內(nèi)存分為RAM和ROM,其中RAM是動(dòng)態(tài)內(nèi)存,相當(dāng)于電腦的內(nèi)存,是影響手機(jī)程序運(yùn)行性能的重要指標(biāo),在RAM中的數(shù)據(jù)在手機(jī)關(guān)閉后丟失。ROM則相當(dāng)于電腦的硬盤,用于存儲(chǔ)手機(jī)操作系統(tǒng)、應(yīng)用程序和用戶的文件,ROM中的信息在掉電后并不會(huì)丟失。隨著手機(jī)上安裝程序的增多,以及數(shù)據(jù)信息的累加,ROM的可用空間會(huì)不斷減少。如果ROM的空間太少,就會(huì)影響到手機(jī)的操作速度。這一點(diǎn)和電腦引導(dǎo)盤空間(例如:Windows系統(tǒng)的C盤)的減少會(huì)影響電腦的使用(shǐyòng)類似??蓪OM看作手機(jī)的內(nèi)部存儲(chǔ)卡。手機(jī)的大小可以通過(guò)增加外部存儲(chǔ)卡(SD卡)來(lái)做進(jìn)一步擴(kuò)充,一般用于存放用戶的文件,例如視頻、音頻文件??梢詫⑵淅斫鉃殡娔X上的外接移動(dòng)硬盤。課程導(dǎo)論共五百二十頁(yè)Android的像素(xiànɡsù)單位Android的像素單位有dip、px、pt、sp等,下面分別介紹它們中主要的用途:dip(DeviceIndependentPixels):設(shè)備獨(dú)立像素。Android設(shè)備的屏幕尺寸有很多種,為了使顯示能盡量與設(shè)備無(wú)關(guān),提出了dip的概念,這樣可以使程序能夠較好地在分辨率不同的手機(jī)上運(yùn)行,并保持類似的外觀。即在分辨率不同的屏幕上,相同dip的控件占據(jù)屏幕的百分比相等。在程序中一般建議(jiànyì)采用該像素單位進(jìn)行設(shè)置。px:表示像素,采用的是絕對(duì)大小,不同設(shè)備的顯示效果相同,即大小不隨設(shè)備分辨率的改變而改變,是Android默認(rèn)的像素單位。sp:放大像素,與dip概念類似,推薦用于設(shè)置字體,TextView控件的字體好以sp為單位課程導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論任務(wù)(rènwu)一開發(fā)輸入界面共五百二十頁(yè)任務(wù)分析應(yīng)用程序主要是由界面和邏輯處理功能組成,標(biāo)準(zhǔn)體重計(jì)算器的開發(fā)可分為信息錄入界面、數(shù)據(jù)處理和結(jié)果反饋3部分,本次任務(wù)是為用戶提供錄入數(shù)據(jù)的界面。要完成本次任務(wù),需要思考如下3個(gè)問(wèn)題:如何使用Android常用的界面類,它們有哪些重要的方法(fāngfǎ)?如何使用XML描述布局?如何在手機(jī)上顯示所開發(fā)的界面?課程(kèchéng)導(dǎo)論共五百二十頁(yè)課程(kèchéng)導(dǎo)論相關(guān)(xiāngguān)知識(shí)共五百二十頁(yè)用戶界面(yònɡhùjièmiàn)設(shè)計(jì)用戶界面(UserInterface)是用戶使用程序的橋梁,良好的界面能夠使用戶更樂意去接受和使用程序。設(shè)計(jì)一個(gè)良好的用戶界面不是追求漂亮的外表,下面給出4個(gè)用戶界面設(shè)計(jì)的原則:1.滿足(mǎnzú)系統(tǒng)功能的需求:這是一個(gè)最基本的原則,用戶界面反映了程序?qū)ν馑峁┑墓δ?。用戶界面不符合系統(tǒng)功能的需求,將會(huì)直接影響到程序的使用效果。2.能夠給用戶提供準(zhǔn)確的信息:不會(huì)對(duì)用戶使用程序起到誤導(dǎo)。3.布局合理,易于使用:根據(jù)信息顯示的載體特點(diǎn)進(jìn)行界面布局,例如:手機(jī)和電腦的屏幕大小差異較大,需要在布局上做更精心的設(shè)計(jì),應(yīng)使用戶能夠快速找到所需要的信息,具有良好的交互性,使得用戶不需要太多的培訓(xùn)就可以直接使用程序。4.界面風(fēng)格要一致,符合用戶的使用習(xí)慣。課程導(dǎo)論共五百二十頁(yè)用戶界面設(shè)計(jì)(shèjì)建議在進(jìn)行(jìnxíng)軟件開發(fā)時(shí),如果感覺到?jīng)]有頭緒,也可以通過(guò)網(wǎng)上的手機(jī)商店查找業(yè)界同類型的軟件,進(jìn)行(jìnxíng)參考。例如:圖2-2為使用Android開發(fā)的一款導(dǎo)航軟件的界面:課程導(dǎo)論

共五百二十頁(yè)應(yīng)用程序界面部分的主要(zhǔyào)組成一個(gè)Android應(yīng)用是類android.app.Application的一個(gè)實(shí)例Application中可以包含多個(gè)Activity實(shí)例。系統(tǒng)給每個(gè)Activity分配一個(gè)默認(rèn)的窗口,而窗口中的內(nèi)容則需要調(diào)用setContentView()方法將其放在一個(gè)顯式的視圖(shìtú)ContentView中,該視圖描述了界面上具體的UI控件,如標(biāo)簽、文本框、單選框、多選框等。課程導(dǎo)論

共五百二十頁(yè)View類View類是Android所有UI控件的父類。View對(duì)象是指在界面上可直接看到的控件,例如:文本框、單選框、多選框、圖片、按鈕等。View控件和Swing編程中的JPanel類似,代表一個(gè)空白的矩形區(qū)域,并負(fù)責(zé)繪圖和事件處理。ViewGroup是View類的一個(gè)重要子類,通常作為其他控件的容器使用,可定義其子View對(duì)象的布局。Android的所有UI控件都建立在View、ViewGroup基礎(chǔ)之上,所有繼承于View類的控件都可以(kěyǐ)使用其屬性和方法課程(kèchéng)導(dǎo)論

共五百二十頁(yè)View類的XML屬性(shǔxìng)課程(kèchéng)導(dǎo)論

共五百二十頁(yè)XML的屬性(shǔxìng)說(shuō)明表格上所列出View類屬性和方法很多,目的是使大家(dàjiā)知道用戶界面設(shè)計(jì)既可以在XML布局文件中指定屬性的值,也可以在編程過(guò)程中通過(guò)相關(guān)方法動(dòng)態(tài)地修改該屬性對(duì)于初學(xué)者開發(fā)者來(lái)說(shuō),建議只記憶標(biāo)記為粗體的常用屬性,并不需要花費(fèi)時(shí)間去記憶所有的屬性??梢愿鶕?jù)屬性名字和方法的英文含義去理解其作用,在平時(shí)練習(xí)中需要實(shí)現(xiàn)某些功能時(shí),從上表查閱即可。屬性android:id的命名和程序變量的命名類似,需要賦予一個(gè)有含義的標(biāo)識(shí),以便于后面在程序代碼中調(diào)用。Android包下面的android.R.styleable類包含所有控件相關(guān)的XML屬性,在編程時(shí)可以進(jìn)行調(diào)用。課程導(dǎo)論

共五百二十頁(yè)TextView控件的主要(zhǔyào)屬性課程(kèchéng)導(dǎo)論

共五百二十頁(yè)android:gravity屬性(shǔxìng)的取值課程(kèchéng)導(dǎo)論

android:gravity="top":不改變大小,位于容器的頂部android:gravity="bottom":不改變大小,位于容器的底部android:gravity="left":不改變大小,位于容器的左邊android:gravity="right":不改變大小,位于容器的右邊android:gravity="center_vertical":不改變大小,位于容器的縱向中央部分android:gravity="center_horizontal":不改變大小,位于容器的橫向中央部分。android:gravity="center":不改變大小,位于容器橫向和縱向的中央部分共五百二十頁(yè)EditText控件的主要(zhǔyào)屬性課程(kèchéng)導(dǎo)論

共五百二十頁(yè)EditText控件的常用方法(fāngfǎ)說(shuō)明在Android源程序中EditText類的常用方法(fāngfǎ)主要有三種:selectAll():文本全選。getText().toString():以字符串形式返回文本框的文本。其中g(shù)etText()返回的是CharSequence類型的接口,用toString()方法將其轉(zhuǎn)換成String類型。setText(text):向文本框填寫內(nèi)容。setText(intresid):向文本框填寫內(nèi)容。參數(shù)來(lái)自res文件夾中的string文件中定義的關(guān)鍵字。因此,若若需要將數(shù)字寫入EditText中,需要先對(duì)數(shù)字轉(zhuǎn)換成字符串,即String.valueOf(num),否則容易報(bào)錯(cuò)。課程導(dǎo)論

共五百二十頁(yè)顏色(yánsè)賦值對(duì)于涉及顏色賦值的XML屬性,例如:android:textColor、android:textColorHighlight、android:textColorHint、android:background,使用(shǐyòng)六位16進(jìn)制數(shù)表示RGB顏色,其中前兩位表示紅色R,中間兩位表示綠色G,最后兩位表示藍(lán)色B,每?jī)晌坏娜≈捣秶际?0~FF(相當(dāng)于10進(jìn)制的0~255)紅、綠、藍(lán)三種顏色的16進(jìn)制表示方法是:本位取最大值FF,其他位取最小值00,即:#FF0000紅色#00FF00綠色#0000FF藍(lán)色另外兩個(gè)比較特殊的顏色表示為:#000000黑色,#FFFFFF白色課程導(dǎo)論

共五百二十頁(yè)布局(bùjú)布局是一個(gè)程序用戶界面的架構(gòu),它定義了界面的布局結(jié)構(gòu),用于存放一組需要顯示給用戶的元素,例如文本框、按鈕等控件。布局文件使用XML來(lái)定義自己的布局和表達(dá)層次視圖,以.xml為擴(kuò)展名,存放在項(xiàng)目的res/layout目錄下,可自動(dòng)被編譯放在R.java文件中Eclipse在創(chuàng)建一個(gè)Activity類時(shí),會(huì)自動(dòng)為其生成一個(gè)布局文件。需要注意的是,res目錄下的所有資源文件命名都能有大寫字母或者中文字符,也不能拿數(shù)字作為首字母,所以布局文件的命名不能使用大寫字母。每個(gè)布局文件必須包含一個(gè)根元素,根元素必須是一個(gè)View或ViewGroup對(duì)象。一旦定義了根元素,就可以添加其他(qítā)View元素,逐步構(gòu)建一個(gè)視圖層次的界面布局。布局文件的設(shè)計(jì),建議使用Android自帶的GraphicalLayout來(lái)進(jìn)行可視化設(shè)計(jì),盡量減少直接編寫XML代碼,以免寫錯(cuò)。課程導(dǎo)論

共五百二十頁(yè)創(chuàng)建一個(gè)布局(bùjú)文件課程(kèchéng)導(dǎo)論

右鍵點(diǎn)擊項(xiàng)目的res->layout文件夾,選擇new->AndroidXMLFile共五百二十頁(yè)創(chuàng)建(chuàngjiàn)一個(gè)布局文件(續(xù))課程(kèchéng)導(dǎo)論

共五百二十頁(yè)布局文件(wénjiàn)的種類關(guān)于手機(jī)屏幕上的控件擺放設(shè)置,Android提供了5種布局方式,分別為:線性布局(LinearLayout)表格布局(TableLayout)相對(duì)布局(RelativeLayout)單幀布局(FrameLayout)絕對(duì)布局(AbsoluteLayout)可以(kěyǐ)將布局理解為前面講到的ViewGroup。這些布局也可以嵌套在一起使用,以便于靈活地生成各種布局樣式,即布局下面有子布局,例如相對(duì)布局下面,有線性布局。對(duì)需要設(shè)置成某種布局的控件,應(yīng)將其XML配置代碼作為布局的子元素。布局屬性的設(shè)置會(huì)影響內(nèi)部控件的排列,所以在修改控件的屬性時(shí),如果無(wú)法出現(xiàn)預(yù)期效果,應(yīng)進(jìn)一步檢查其上一級(jí)布局屬性的設(shè)置。課程導(dǎo)論

共五百二十頁(yè)布局文件示例(只有(zhǐyǒu)一個(gè)文本輸入框)課程(kèchéng)導(dǎo)論

<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#000000"android:orientation="vertical"><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"><requestFocus/></EditText></LinearLayout>共五百二十頁(yè)布局(bùjú)文件在程序中的加載在編譯Android應(yīng)用程序時(shí),每個(gè)XML布局文件將被編譯成一個(gè)View資源。由Activity代碼中的onCreate()函數(shù)調(diào)用setContentView()實(shí)現(xiàn)布局資源的加載,以“R.layout.布局文件名”的形式作為函數(shù)(hánshù)的參數(shù)值。如對(duì)名為main_layout.xml的布局文件,加載如下代碼。課程導(dǎo)論

public

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//調(diào)用父類的onCreate方法

setContentView(R.layout.main_layout);

}

共五百二十頁(yè)XML中的資源(zīyuán)ID設(shè)置好用戶界面后就可以進(jìn)一步操作布局文件(wénjiàn)中的元素。XML文件中的每一個(gè)元素對(duì)應(yīng)一個(gè)Java類,那么如何確定元素對(duì)應(yīng)的UI類呢?這就涉及XML的ID屬性。XML中ID屬性語(yǔ)法如下。android:id="@+id/editText1"@符號(hào)表示XML解析器應(yīng)該解析和擴(kuò)展剩下的ID字符串,并將其用作ID資源。+符號(hào)表示這是一個(gè)新的資源名字,必須被創(chuàng)建且加入到R.java文件中。R.java文件是一個(gè)最終類,保存了應(yīng)用程序用到的圖標(biāo)、常量等各種資源ID,被放置在“項(xiàng)目名稱/gen/項(xiàng)目包名/R.java”目錄下。R.java是編譯器根據(jù)用戶的XML文件或資源文件自動(dòng)創(chuàng)建的,請(qǐng)勿手工修改R.java文件。通過(guò)R.java,應(yīng)用程序能方便地查找到對(duì)應(yīng)的資源,調(diào)用的格式是R.XXX.XXX,XXX符號(hào)在實(shí)際使用時(shí)應(yīng)填寫具體的值。如R.drawable.XXX,R.string.XXX、R.layout.XXX、R.id.XXX,分別對(duì)應(yīng)于“項(xiàng)目目錄/res/drawable/”下的資源、“/res/string/”下的字符串、“/res/layout/”下的布局文件及XML文件中控件元素的ID等。R.layout.main_layout表示名為main_layout的布局文件。課程導(dǎo)論

共五百二十頁(yè)在程序中通過(guò)XML中的資源ID,獲得對(duì)應(yīng)(duìyìng)的資源對(duì)象通過(guò)findViewById方法從布局文件中找出文本輸入框,并向其中填寫內(nèi)容,editText1為文本框的ID。public

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main_layout);

//對(duì)findViewById方法返回的結(jié)果需要根據(jù)View的類型進(jìn)行(jìnxíng)強(qiáng)制類型轉(zhuǎn)換,下面代碼是轉(zhuǎn)換為文本框EditTexttEdit=(EditText)findViewById(R.id.editText1);tEdit.setText("您好!");}

課程導(dǎo)論

共五百二十頁(yè)線性布局(bùjú)線性布局分為(fēnwéi)垂直線性布局和水平線性布局,分別表示為android:orientation=“vertical”和android:orientation=“horizontal”。垂直線性布局表示控件以垂直方式排列,即每一行放一個(gè)控件;水平線性布局表示控件按照水平方式排列,即所有控件都放在同一行,超出部分會(huì)被遮蓋線性布局的根元素名為:LinearLayout課程導(dǎo)論

垂直線性布局水平線性布局共五百二十頁(yè)復(fù)雜(fùzá)的線性布局界面(屬性解釋請(qǐng)參考P48頁(yè))課程(kèchéng)導(dǎo)論

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_height="fill_parent"android:layout_width="fill_parent"><Buttonandroid:id="@+id/Button01"android:layout_height="wrap_content"android:text="上面"android:layout_width="fill_parent"></Button><LinearLayoutandroid:id="@+id/LinearLayout01"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_width="wrap_content"><Buttonandroid:id="@+id/Button03"android:layout_height="wrap_content"android:text="左邊"android:layout_width="wrap_content"></Button><Buttonandroid:id="@+id/Button02"android:layout_height="wrap_content"android:text="右邊"android:layout_width="wrap_content"></Button></LinearLayout><LinearLayoutandroid:id="@+id/LinearLayout02"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/Button05"android:layout_height="wrap_content"android:layout_weight="1"android:text="左邊"android:layout_width="wrap_content"></Button><Buttonandroid:id="@+id/Button04"android:layout_height="wrap_content"android:text="右邊"android:layout_weight="5"android:layout_width="wrap_content"></Button></LinearLayout></LinearLayout>共五百二十頁(yè)相對(duì)(xiāngduì)布局在這個(gè)容器內(nèi)部的子元素們可以使用彼此之間相對(duì)位置或者與容器間的相對(duì)位置來(lái)進(jìn)行定位。使用相對(duì)布局的好處是位置控制比較靈活。相對(duì)布局的根元素名為:RelativeLayout相對(duì)布局的主要屬性包括4類:①設(shè)置控件與控件之間的位置關(guān)系(見表2-4);②設(shè)置控件與控件之間對(duì)齊的方式,是頂部、底部還是左、右對(duì)齊(見表2-5):③設(shè)置控件與父控件之間對(duì)齊的方式,是頂部、底部還是左、右對(duì)齊(見表2-6);④設(shè)置控件方向的屬性(見表2-7)??梢酝ㄟ^(guò)組合這些(zhèxiē)屬性來(lái)實(shí)現(xiàn)各種各樣的布局效果。課程導(dǎo)論

共五百二十頁(yè)相對(duì)(xiāngduì)布局課程(kèchéng)導(dǎo)論

共五百二十頁(yè)相對(duì)(xiāngduì)布局示例(P48)<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="#0000FF"android:padding="10px"><TextViewandroid:id="@+id/tv01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="30dp"android:text="請(qǐng)輸入:"/><EditTextandroid:id="@+id/txt01"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/tv01"/><Buttonandroid:id="@+id/btn01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@id/txt01"android:text="確認(rèn)(quèrèn)"/><Buttonandroid:id="@+id/btn02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/txt01"android:layout_marginRight="30dp"android:layout_toLeftOf="@id/btn01"android:text="取消"/></RelativeLayout>課程導(dǎo)論

共五百二十頁(yè)表格(biǎogé)布局(P50)表格(biǎogé)布局的樣式與一個(gè)表格(biǎogé)類似。通過(guò)TableRow來(lái)定義行,有幾行就有幾個(gè)TableRow表格布局的根元素名為:TableLayout<?xmlversion="1.0"encoding="utf-8"?><TableLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"> <TableRow> <Button android:text="第1排第1列"

/> <Button android:text="第1排第2列"

/>

<Button android:text="第1排第3列"

/> </TableRow> <TableRow>

<Button android:text="第2排第1列" /> <Button android:layout_span="2"

android:text="第2排第2列[占2列]" /> </TableRow></TableLayout>

課程導(dǎo)論

android:layout_span:該控件所占的列數(shù),取值越大,控件占的空間越大共五百二十頁(yè)RadioButton單選框(P51)要實(shí)現(xiàn)單選功能,需要使用RadioGroup和RadioButton控件。RadioGroup是一個(gè)容器,用于管理一組RadioButton,用戶只能選擇(xuǎnzé)其中的一個(gè)RadioButton。在沒有RadioGroup的情況下,RadioButton可以被全部選中。課程(kèchéng)導(dǎo)論

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="求職意向"></TextView><RadioGroupandroid:id="@+id/RadioGroup01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/RadioButton01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="北京"></RadioButton><RadioButtonandroid:id="@+id/RadioButton02"android:layout_width="wrap

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論