Android項目驅(qū)動教程_第1頁
Android項目驅(qū)動教程_第2頁
Android項目驅(qū)動教程_第3頁
Android項目驅(qū)動教程_第4頁
Android項目驅(qū)動教程_第5頁
已閱讀5頁,還剩515頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

共五百二十頁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":不改變大小,位于容器橫向和縱向的中央部分共五百二十頁EditText控件的主要(zhǔyào)屬性課程(kèchéng)導(dǎo)論

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

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

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

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

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

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

共五百二十頁布局文件示例(只有(zhǐyǒu)一個文本輸入框)課程(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>共五百二十頁布局(bùjú)文件在程序中的加載在編譯Android應(yīng)用程序時,每個XML布局文件將被編譯成一個View資源。由Activity代碼中的onCreate()函數(shù)調(diào)用setContentView()實現(xiàn)布局資源的加載,以“R.layout.布局文件名”的形式作為函數(shù)(hánshù)的參數(shù)值。如對名為main_layout.xml的布局文件,加載如下代碼。課程導(dǎo)論

public

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

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

setContentView(R.layout.main_layout);

}

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

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

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main_layout);

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

課程導(dǎo)論

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

垂直線性布局水平線性布局共五百二十頁復(fù)雜(fùzá)的線性布局界面(屬性解釋請參考P48頁)課程(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>共五百二十頁相對(xiāngduì)布局在這個容器內(nèi)部的子元素們可以使用彼此之間相對位置或者與容器間的相對位置來進行定位。使用相對布局的好處是位置控制比較靈活。相對布局的根元素名為:RelativeLayout相對布局的主要屬性包括4類:①設(shè)置控件與控件之間的位置關(guān)系(見表2-4);②設(shè)置控件與控件之間對齊的方式,是頂部、底部還是左、右對齊(見表2-5):③設(shè)置控件與父控件之間對齊的方式,是頂部、底部還是左、右對齊(見表2-6);④設(shè)置控件方向的屬性(見表2-7)。可以通過組合這些(zhèxiē)屬性來實現(xiàn)各種各樣的布局效果。課程導(dǎo)論

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

共五百二十頁相對(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="請輸入:"/><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)論

共五百二十頁表格(biǎogé)布局(P50)表格(biǎogé)布局的樣式與一個表格(biǎogé)類似。通過TableRow來定義行,有幾行就有幾個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ù),取值越大,控件占的空間越大共五百二十頁RadioButton單選框(P51)要實現(xiàn)單選功能,需要使用RadioGroup和RadioButton控件。RadioGroup是一個容器,用于管理一組RadioButton,用戶只能選擇(xuǎnzé)其中的一個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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論