Kotlin移動(dòng)應(yīng)用開發(fā)技術(shù) 教學(xué)大綱_第1頁(yè)
Kotlin移動(dòng)應(yīng)用開發(fā)技術(shù) 教學(xué)大綱_第2頁(yè)
Kotlin移動(dòng)應(yīng)用開發(fā)技術(shù) 教學(xué)大綱_第3頁(yè)
Kotlin移動(dòng)應(yīng)用開發(fā)技術(shù) 教學(xué)大綱_第4頁(yè)
Kotlin移動(dòng)應(yīng)用開發(fā)技術(shù) 教學(xué)大綱_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Kotlin開發(fā)Android移動(dòng)應(yīng)用程序》課程教學(xué)大綱課程編碼:XX0001課程總學(xué)時(shí)(理論總學(xué)時(shí)/實(shí)踐總學(xué)時(shí)):108(68/40)周學(xué)時(shí)(理論學(xué)時(shí)/實(shí)踐學(xué)時(shí)):6學(xué)分:6一、課程說明1.課程性質(zhì):專業(yè)必修課/專業(yè)選修課2.適用專業(yè)與學(xué)時(shí)分配:適用于軟件工程/計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)。教學(xué)內(nèi)容與時(shí)間安排表章次內(nèi)容總課時(shí)理論課時(shí)實(shí)踐課時(shí)一Android的概述321二Kotlin的基礎(chǔ)語法321三Kotlin的面向?qū)ο蠡A(chǔ)541四Kotlin的面向?qū)ο筮M(jìn)階862五Android的基礎(chǔ)控件642六Android的布局組件532七Android的進(jìn)階控件與適配綁定752八Android的基本程序單元954九Android的后臺(tái)服務(wù)與廣播743十Android的數(shù)據(jù)存儲(chǔ)與共享1064十一Android的多媒體與傳感器1284十二Android的HTTP網(wǎng)絡(luò)通信844十三Android的快速開發(fā)套件844十四《粉色辣椒》全流程開發(fā)171163.課程教學(xué)目的與要求:本課程是XX學(xué)院XX專業(yè)必修課/選修課。本課程講授了基于Kotlin語言開發(fā)Android移動(dòng)應(yīng)用的基礎(chǔ)知識(shí),使學(xué)生掌握Kotlin語法、面向?qū)ο缶幊?、Android的基本控件和組件、Android的多媒體開發(fā)、Android的HTTP通訊、Android的常用快速開發(fā)套件,并通過《粉色辣椒》全流程開發(fā)使學(xué)生深入了解移動(dòng)應(yīng)用開發(fā)。4.本門課程與其它課程關(guān)系:學(xué)生在修完《計(jì)算機(jī)理論基礎(chǔ)》、《C語言》、《計(jì)算機(jī)網(wǎng)絡(luò)》等課程,具備相關(guān)理論與計(jì)算機(jī)知識(shí)后方可進(jìn)行本課程學(xué)習(xí)。5.推薦教材及參考資料:推薦教材:《Kotlin開發(fā)Android移動(dòng)應(yīng)用程序》參考資料:《Kotlin核心編程》水滴技術(shù)團(tuán)隊(duì)人機(jī)械工業(yè)出版社《第一行代碼Android第3版》郭霖人民郵電出版社《Kotlin移動(dòng)和服務(wù)器端應(yīng)用開發(fā)》布雷特·麥克勞克林清華大學(xué)出版社6.課程教學(xué)方法與手段:多媒體教學(xué)7.課程考試方法與要求:綜合設(shè)計(jì)成績(jī)(50%)、實(shí)驗(yàn)成績(jī)(40%)與平時(shí)成績(jī)(10%)相結(jié)合。二、教學(xué)內(nèi)容綱要第一章Android的概述(2學(xué)時(shí))1、教學(xué)目標(biāo)了解Android的發(fā)展歷史,掌握開發(fā)環(huán)境的創(chuàng)建、工程的創(chuàng)建以及工程的結(jié)構(gòu)。2、主要內(nèi)容1.1Android的發(fā)展歷史1.2Android的開發(fā)環(huán)境1.3Android的工程創(chuàng)建1.4Android的工程結(jié)構(gòu)第二章Kotlin的基礎(chǔ)語法(2學(xué)時(shí))1、教學(xué)目標(biāo)了解變量的概念、基本數(shù)據(jù)類型、字符串,掌握運(yùn)算符和位運(yùn)算、分支語句、循環(huán)語句、數(shù)組、函數(shù)和Lambda表達(dá)式的使用方法。2、主要內(nèi)容2.1變量2.2數(shù)據(jù)類型2.3運(yùn)算符和位運(yùn)算2.4字符串2.5分支語句2.6循環(huán)語句2.7數(shù)組2.8函數(shù)和Lambda表達(dá)式第三章Kotlin的面向?qū)ο蠡A(chǔ)(4學(xué)時(shí))1、教學(xué)目標(biāo)了解類、重寫與重載、包的概念,掌握類聲明和實(shí)例化、抽象類和抽象方法、封裝和訪問控制符、接口、委托、屬性的延遲初始化的使用方法,使學(xué)生建立面向?qū)ο缶幊痰乃季S方式。2、主要內(nèi)容3.1類3.2重寫與重載3.3抽象類和抽象方法3.4包3.5封裝和訪問控制符3.6接口3.7委托3.8屬性的延遲初始化第四章Kotlin的面向?qū)ο筮M(jìn)階(6學(xué)時(shí))1、教學(xué)目標(biāo)掌握數(shù)據(jù)類、密封類、對(duì)象類的創(chuàng)建和調(diào)用方法,以及伴生對(duì)象、枚舉、三種不同類型集合、泛型的使用方法,能夠恰當(dāng)使用異常處理方法捕捉異常,合理使用多線程和協(xié)程。2、主要內(nèi)容4.1數(shù)據(jù)類4.2密封類4.3對(duì)象類4.4伴生對(duì)象4.5枚舉4.6集合4.7泛型4.8異常處理4.9多線程4.10協(xié)程第五章Android的基礎(chǔ)控件(4學(xué)時(shí))1、教學(xué)目標(biāo)了解控件的概念,掌握文本視圖、輸入框、按鈕、圖片視圖、圖像按鈕、單選按鈕、復(fù)選框、開關(guān)按鈕、提示信息、對(duì)話框、日期選擇器、時(shí)間選擇器、滾動(dòng)條視圖、通知等控件的使用方法。2、主要內(nèi)容5.1控件5.2文本視圖5.3輸入框5.4按鈕5.5圖片視圖5.6圖像按鈕5.7單選按鈕5.8復(fù)選框5.9開關(guān)按鈕5.10提示信息5.11對(duì)話框5.12日期選擇器5.13時(shí)間選擇器5.14滾動(dòng)條視圖5.15通知第六章Android的布局組件(3學(xué)時(shí))1、教學(xué)目標(biāo)掌握線性布局、相對(duì)布局、表格布局、網(wǎng)格布局、幀布局和約束布局的使用方法,并能夠靈活運(yùn)用布局的嵌套。2、主要內(nèi)容6.1線性布局6.2相對(duì)布局6.3表格布局6.4網(wǎng)格布局6.5幀布局6.6約束布局第七章Android的進(jìn)階控件與適配綁定(5學(xué)時(shí))1、教學(xué)目標(biāo)了解數(shù)據(jù)適配的原理,掌握列表視圖、網(wǎng)格視圖、懸浮框、翻轉(zhuǎn)視圖、分頁(yè)視圖的使用方法。了解視圖綁定和數(shù)據(jù)綁定的區(qū)別,能夠針對(duì)不同情況恰當(dāng)使用。2、主要內(nèi)容7.1數(shù)據(jù)適配原理7.2列表視圖7.3網(wǎng)格視圖7.4懸浮框7.5翻轉(zhuǎn)視圖7.6分頁(yè)視圖7.7視圖綁定7.8數(shù)據(jù)綁定第八章Android的基本程序單元(5學(xué)時(shí))1、教學(xué)目標(biāo)了解Activity的生命周期和啟動(dòng)模式和Fragment的生命周期,掌握Activity和Fragment的創(chuàng)建方法,能夠使用Fragment制作導(dǎo)航分頁(yè)。2、主要內(nèi)容8.1Activity組件8.2Fragment組件第九章Android的后臺(tái)服務(wù)與廣播(4學(xué)時(shí))1、教學(xué)目標(biāo)了解Service組件的生命周期,掌握Service組件的開啟、停止、綁定和數(shù)據(jù)傳遞,以及BroadcastReceiver組件的顯式和隱式接收廣播、發(fā)送標(biāo)準(zhǔn)廣播和有序廣播。2、主要內(nèi)容9.1Service組件9.2BroadcastReceiver組件第十章Android的數(shù)據(jù)存儲(chǔ)與共享(6學(xué)時(shí))1、教學(xué)目標(biāo)了解URI、數(shù)據(jù)交換原理和JSON數(shù)據(jù)結(jié)構(gòu),掌握SharedPreferences組件讀寫本地?cái)?shù)據(jù)和SQLite組件創(chuàng)建并使用本地?cái)?shù)據(jù)庫(kù)的方法,使用ContentProvider組件在不同應(yīng)用之間數(shù)據(jù)訪問,能夠熟練使用JSONObject類合成和解析數(shù)據(jù)。2、主要內(nèi)容10.1SharedPreferences組件10.2SQLite組件10.3ContentProvider組件10.4JSONObject類第十一章Android的多媒體與傳感器(8學(xué)時(shí))1、教學(xué)目標(biāo)掌握使用系統(tǒng)相機(jī)進(jìn)行拍照和錄像,并將照片和視頻保存在相冊(cè)中,能夠分別使用AudioRecord和MediaRecorder錄音。了解運(yùn)動(dòng)類傳感器、位置類傳感器和環(huán)境類傳感器的使用方法,使用Location組件獲取當(dāng)前位置的經(jīng)緯度。2、主要內(nèi)容11.1系統(tǒng)相機(jī)和相冊(cè)11.2拍攝照片和錄制視頻11.3錄制音頻11.4傳感器11.5位置服務(wù)第十二章Android的HTTP網(wǎng)絡(luò)通信(4學(xué)時(shí))1、教學(xué)目標(biāo)了解HttpURLConnection類的屬性和方法,能夠使用HttpURLConnection類加載存儲(chǔ)在服務(wù)器端的圖片,并且能夠使用POST方式和GET方式向服務(wù)器端發(fā)送數(shù)據(jù)和接收服務(wù)器端的數(shù)據(jù)。2、主要內(nèi)容12.1HttpURLConnection類12.2實(shí)例工程:加載網(wǎng)絡(luò)圖片(帶緩存)12.3實(shí)例工程:發(fā)布動(dòng)態(tài)(POST方式)12.4實(shí)例工程:動(dòng)態(tài)列表(GET方式)第十三章Android的布局組件(4學(xué)時(shí))1、教學(xué)目標(biāo)了解Jetpack,能夠正確使用RecyclerView控件、SwipeRefreshLayout組件、Biometric組件、Lifecycle組件、ViewModel組件和LiveData組件提高開發(fā)效率。2、主要內(nèi)容13.1Jetpack簡(jiǎn)介13.2RecyclerView控件13.3SwipeRefreshLayout組件13.4Biometric組件13.5Lifecycle組件13.6ViewModel組件13.7LiveData組件第十四章《粉色辣椒》全流程開發(fā)(11學(xué)時(shí))1、教學(xué)目標(biāo)了解開發(fā)流程和《粉色辣椒》的開放平臺(tái),掌握設(shè)置啟動(dòng)圖標(biāo)的方法,對(duì)數(shù)據(jù)模型進(jìn)行封裝,能夠使用MVVM模式進(jìn)行開發(fā),完成《粉色辣椒》的全流程開發(fā)。2、主要內(nèi)容14.1項(xiàng)目介紹14.2開發(fā)流程14.3開放平臺(tái)介紹14.4啟動(dòng)圖標(biāo)14.5數(shù)據(jù)模型14.6歡迎模塊14.7注冊(cè)模塊組14.8首頁(yè)模塊組114.8發(fā)布動(dòng)態(tài)模塊14.10MVVM模式14.11首頁(yè)模塊組214.12回復(fù)動(dòng)態(tài)模塊14.13關(guān)注和粉絲列表模塊14.14搜索動(dòng)態(tài)模塊14.15私信模塊14.16設(shè)置模塊組14.17應(yīng)用程序發(fā)布三、實(shí)驗(yàn)教學(xué)內(nèi)容實(shí)驗(yàn)一Android開發(fā)環(huán)境1學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誂ndroidStudio的下載和安裝方法。學(xué)會(huì)更新Gradle的方法。學(xué)會(huì)新建Android項(xiàng)目,了解Android項(xiàng)目的工程結(jié)構(gòu)。掌握生成帶簽名的APK文件的方法。2、實(shí)驗(yàn)內(nèi)容AndroidStudio的下載和安裝打開網(wǎng)址(/studio/),單擊“DOWNLOADOPTIONS”鏈接,跳轉(zhuǎn)至AndroidStudio下載列表。雙擊下載的

exe格式安裝文件,根據(jù)安裝向?qū)У闹甘景惭bAndroidStudio和所有所需的SDK工具。

安裝進(jìn)度完成后,單擊“Finish”按鈕。更新Gradle打開Gradle網(wǎng)址(/distributions/)使用迅雷等軟件通過手動(dòng)下載的方式進(jìn)行更新。把下載的新版本Gradle解壓到gradle更新文件夾內(nèi)(如REF_Ref53430465\h圖120所示)。然后在AndroidStudio中,選擇【File】-【Settings】命令。在打開的對(duì)話框中,選擇左側(cè)的“Gradle”選項(xiàng)。然后選擇右側(cè)的“Uselocalgradledistribution”單選項(xiàng),單擊“Gradlehome”后面的路徑選擇按鈕,選擇剛才解壓的gradle文件夾,單擊“OK”按鈕。新建Android項(xiàng)目單擊菜單中的【File】-【New】-【NewPreject】命令,打開“CreateNewProject”對(duì)話框,進(jìn)行工程創(chuàng)建的向?qū)?。工程?chuàng)建向?qū)У牡?頁(yè)用于選擇工程的類型,選擇“EmptyActivity”進(jìn)行手機(jī)項(xiàng)目的App開發(fā)。單擊“Next”按鈕,進(jìn)入工程創(chuàng)建向?qū)У牡?頁(yè),進(jìn)行“Name”、“Packagename”、“Savelocation”、“Language”、“MinimumSDK”等配置。單擊“OK”按鈕,再單擊“Finish”按鈕完成工程的創(chuàng)建向?qū)?,然后顯示AndroidStudio的界面。生成簽名的APK文件選擇【Build】→【GenerateSignedBundle/APK...】命令。打開“GenerateSignedBundleorAPK”對(duì)話框后,選擇“APK”單選按鈕,然后單擊“Next”按鈕進(jìn)入下一個(gè)頁(yè)面。單擊“Createnew...”按鈕,打開“NewKeyStore”對(duì)話框,設(shè)置簽名文件密碼、簽名密碼、有效年限和證書內(nèi)容,然后單擊“OK”按鈕完成簽名文件的創(chuàng)建。創(chuàng)建簽名文件后,在“GenerateSignedBundleorAPK”對(duì)話框中會(huì)自動(dòng)填入簽名路徑、簽名路徑密碼、簽名別名和簽名密碼,點(diǎn)擊“Next”按鈕,進(jìn)入下一個(gè)頁(yè)面?!癇uildVariants”選項(xiàng)選擇“release”,“SignatureVersions”勾選“V2(FullAPKSignature)”復(fù)選框,單擊“Finish”按鈕生成簽名的APK文件。實(shí)驗(yàn)二Kotlin的基礎(chǔ)語法1學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康睦斫獠⒄莆崭唠A函數(shù)的使用方法。理解并掌握匿名函數(shù)的使用方法。掌握Lambda表達(dá)式的基本形式,以及參數(shù)的省略形式。2、實(shí)驗(yàn)內(nèi)容高階函數(shù)高階函數(shù)是作為另一個(gè)函數(shù)參數(shù)或返回值的函數(shù)。參考C0223工程,創(chuàng)建一個(gè)高階函數(shù),并作作為數(shù)據(jù)類型和返回值使用。匿名函數(shù)匿名函數(shù)是指沒有函數(shù)名稱的函數(shù),可以直接賦值給變量,然后通過變量名調(diào)用。參考C0224工程,創(chuàng)建計(jì)算圓形面積的匿名函數(shù),并進(jìn)行調(diào)用。Lambda表達(dá)式Lambda表達(dá)式的本質(zhì)是匿名函數(shù),多作為高階函數(shù)使用,也可以直接使用。參考C0225工程,創(chuàng)建以Lambda表達(dá)式作為返回值的計(jì)算面積的函數(shù),并進(jìn)行調(diào)用。參考C0226工程,創(chuàng)建repeatDown()函數(shù),使用Lambda表達(dá)式實(shí)現(xiàn)遞減功能repeat語句功能,并使用了三種等價(jià)形式調(diào)用了該函數(shù)。實(shí)驗(yàn)三Kotlin的面向?qū)ο蠡A(chǔ)1學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康睦斫獠⒄莆粘橄箢惡统橄蠓椒ǖ氖褂梅椒?。理解訪問控制符的作用域,合理使用訪問控制符。理解屬性的延遲初始化的作用,并其掌握使用方法。2、實(shí)驗(yàn)內(nèi)容抽象類和抽象方法抽象類是一種特殊的類,聲明了抽象方法,通常用于繼承。抽象類不能實(shí)例化對(duì)象,而是必須實(shí)例化其具體的子類。參考C0307工程,創(chuàng)建抽象類和抽象方法,并使用。訪問控制符訪問控制有4種類型:public、private、protected和internal,默認(rèn)缺省訪問控制符是public。參考C0309工程,新建car包,在car包內(nèi)新建Car類,然后為Car類添加兩個(gè)屬性和三個(gè)方法。在car包內(nèi)新建Bus類,使其繼承Car類,并為其添加主構(gòu)造方法的初始化塊和三個(gè)方法。屬性的延遲初始化屬性需要在聲明時(shí)或構(gòu)造方法中初始化,否則會(huì)報(bào)錯(cuò)。如果不需要在聲明時(shí)或構(gòu)造方法中初始化就需要設(shè)置延遲初始化。有兩種延遲初始化的方式:lateinit和bylazy。參考C0313工程,使用lateinit延遲初始化屬性的使用方法。參考C0314工程,使用bylazy延遲初始化屬性的使用方法。實(shí)驗(yàn)四Kotlin的面向?qū)ο筮M(jìn)階2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康睦斫獠⒄莆瞻樯鷮?duì)象的使用方法。掌握三種不同類型集合的使用方法。掌握泛型類和泛型方法的使用方法。掌握異常處理的使用方法。理解多線程的原理,并掌握使用方法。理解協(xié)程的原理,并掌握使用方法。2、實(shí)驗(yàn)內(nèi)容伴生對(duì)象伴生對(duì)象用于在普通類中實(shí)現(xiàn)靜態(tài)屬性和靜態(tài)方法的功能,使用companionobject{}語句創(chuàng)建伴生對(duì)象。伴生對(duì)象內(nèi),方法中不能使用在伴生對(duì)象外聲明的屬性,只能使用伴生對(duì)象內(nèi)聲明的屬性,而伴生對(duì)象外聲明的方法可以調(diào)用伴生對(duì)象內(nèi)聲明的屬性。參考C0404工程,創(chuàng)建伴生對(duì)象,并調(diào)用伴生對(duì)象內(nèi)的態(tài)屬性和靜態(tài)方法。集合集合通常包含相同類型的對(duì)象,集合中的對(duì)象稱為元素。集合分為可變集合和不可變集合,可變集合可以增減元素,而不可變集合不可以增加元算。Set類用于存儲(chǔ)不重復(fù)的同一類型數(shù)據(jù)的集合,提供了size屬性用于獲取元素?cái)?shù)量。參考C0407工程,創(chuàng)建Set集合和MutableSet集合的實(shí)例,并調(diào)用其常用屬性和方法。List類用于也可以存儲(chǔ)不重復(fù)的同一類型數(shù)據(jù)的集合,但是元素都有對(duì)應(yīng)的順序索引,因此允許使用重復(fù)元素,可以通過索引來訪問指定位置的集合元素。參考C0408工程,創(chuàng)建List集合和MutableList集合的實(shí)例,并調(diào)用其常用屬性和方法。Map類使用鍵名和鍵值保存同一類型數(shù)據(jù),鍵名不能重復(fù),鍵值可以重復(fù)。參考C0409工程,創(chuàng)建Map和MutableMap集合的實(shí)例,并調(diào)用其常用屬性和方法。泛型類和泛型方法泛型是一種特殊的類型,可以接收不同類型的數(shù)據(jù)。泛型的本質(zhì)是參數(shù)化類型,泛型并不是變量,所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù)。參考C0410工程,聲明并調(diào)用泛型類。參考C0412工程,聲明并調(diào)用泛型方法。異常處理異常處理是指對(duì)程序運(yùn)行中的錯(cuò)誤或問題的處理機(jī)制。參考C0413工程,使用基本形式捕獲異常。多線程進(jìn)程中包含兩個(gè)或兩個(gè)以上的線程被稱為多線程,多線程能更好地利用CPU資源,但是對(duì)內(nèi)存的消耗也會(huì)更多。每個(gè)線程都有獨(dú)立的生命周期,包含新建狀態(tài)、運(yùn)行狀態(tài)、就緒狀態(tài)、阻塞狀態(tài)和死亡狀態(tài)等五種狀態(tài)。參考C0416工程,創(chuàng)建自定義多線程類,并實(shí)例化后啟動(dòng)多線程。參考C0417工程,通過實(shí)現(xiàn)Runnable接口的類并調(diào)用重寫的run()抽象方法開啟多線程。參考C0418工程,通過Callable接口重寫的call()方法實(shí)現(xiàn)多線程。協(xié)程協(xié)程是一種輕量級(jí)的異步解決方案。協(xié)程不是進(jìn)程也不是線程,而是一個(gè)特殊的函數(shù),這個(gè)函數(shù)可以在某個(gè)地方掛起,并且可以重新在掛起處外繼續(xù)運(yùn)行。REF_Ref67006818\r\h[22]協(xié)程依賴于線程,一個(gè)線程中可以創(chuàng)建多個(gè)協(xié)程,但是協(xié)程掛起時(shí)不需要阻塞線程,消耗內(nèi)存更少,幾乎不會(huì)引起OOM異常。參考C0421工程,調(diào)用GlobalScope.launch()方法開啟全局域協(xié)程。參考C0422工程,在CoroutineScope.launch()方法開啟協(xié)程內(nèi)使用launch()方法開啟子協(xié)程。參考C0423工程,在主線程上使用runBlocking()函數(shù)開啟協(xié)程及其子協(xié)程。參考C0424工程,使用withContext()函數(shù)和使用suspend關(guān)鍵字自定義的掛起方法。實(shí)驗(yàn)五Android的基礎(chǔ)控件2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誘extView控件的使用方法。掌握EditText控件的使用方法。掌握Button控件的使用方法。掌握ImageView控件的使用方法。掌握RadioButton控件的使用方法。掌握AlertDialog控件的使用方法。掌握DatePicker控件的使用方法。掌握ScrollView控件的使用方法。掌握Notification控件的使用方法。2、實(shí)驗(yàn)內(nèi)容TextView控件TextView控件是用于顯示文本信息的控件。參考C0501工程,使用兩種方法創(chuàng)建TextView控件。第一個(gè)TextView控件使用標(biāo)簽創(chuàng)建,使用setText()方法修改文本內(nèi)容;第二個(gè)TextView控件通過代碼動(dòng)態(tài)創(chuàng)建,使用代碼設(shè)置內(nèi)容、字號(hào)大小、布局等屬性。EditText控件EditText控件是用于輸入和編輯文本內(nèi)容的控件。參考C0502工程,創(chuàng)建三種不同效果的EditText控件。第一個(gè)EditText控件輸入的字符超過ems屬性設(shè)置的長(zhǎng)度后,之前輸入的字符會(huì)被推后隱藏起來,第二個(gè)EditText控件輸入的字符超過maxEms屬性設(shè)置的長(zhǎng)度后,會(huì)在maxLength屬性設(shè)置的范圍內(nèi)自動(dòng)延長(zhǎng)控件的長(zhǎng)度,第三個(gè)EditText控件輸入換行后,控件會(huì)在maxLines屬性設(shè)置的范圍內(nèi)自動(dòng)增加一行。Button控件Button控件是按鈕的控件。參考C0503工程,創(chuàng)建Button控件及其點(diǎn)擊監(jiān)聽事件,單擊“獲取當(dāng)前系統(tǒng)時(shí)間”按鈕,在其上方的TextView控件中顯示出當(dāng)前的系統(tǒng)時(shí)間。ImageView控件ImageView控件是用顯示圖片的控件。參考C0504工程,使用ImageView控件顯示圖像的三種縮放匹配效果。第一張圖片是等比例最大化居中顯示;第二張圖片是原始尺寸在左上角顯示;第三張圖片是完全填充顯示,可能會(huì)導(dǎo)致圖片被拉伸變形。RadioButton控件RadioButton控件是單選框的控件。參考C0506工程,使用RadioButton控件選擇性別,單擊改變選擇的選項(xiàng)或提交按鈕時(shí),會(huì)在控制臺(tái)中輸出相應(yīng)的信息。AlertDialog控件AlertDialog控件是用于顯示對(duì)話框的控件。參考C0510工程,創(chuàng)建默認(rèn)AlertDialog控件和自定義AlertDialog控件。單擊“默認(rèn)對(duì)話框”按鈕顯示默認(rèn)AlertDialog控件,單擊AlertDialog控件以外的區(qū)域可以直接關(guān)閉對(duì)話框。單擊“自定義對(duì)話框”按鈕顯示自定義AlertDialog控件,然后輸入框自動(dòng)獲取焦點(diǎn)后彈出虛擬鍵盤,此時(shí)單擊該控件以外的區(qū)域不會(huì)關(guān)閉對(duì)話框。DatePicker控件DatePicker控件是用于選擇日期的控件。參考C0511工程,創(chuàng)建spinner外觀樣式的DatePicker控件?;瑒?dòng)DatePicker控件可以修改年月日。單擊“重置”按鈕,會(huì)將DatePicker控件的日期設(shè)置為“2020年1月1日”。單擊“確定”按鈕,會(huì)獲取DatePicker控件設(shè)置的日期。ScrollView控件ScrollView控件是可滾動(dòng)的用于顯示其他控件的控件。參考C0513工程,創(chuàng)建ScrollView控件并添加子控件,子控件超出顯示范圍時(shí)通過滾動(dòng)的方式進(jìn)行顯示。ScrollView控件先向下滑動(dòng)到1000像素,然后單擊其下方的四個(gè)按鈕實(shí)現(xiàn)不同位置的滑動(dòng)。Notification控件Notification控件是顯示通知的控件。參考C0514工程,創(chuàng)建彈出式狀態(tài)欄通知和自定義視圖狀態(tài)欄通知,單擊“關(guān)閉狀態(tài)欄通知”關(guān)閉通知。實(shí)驗(yàn)六Android的布局組件2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誏inearLayout組件的使用方法。掌握RelativeLayout組件的使用方法。掌握TableLayout組件的使用方法。掌握GridLayout組件的使用方法。掌握FrameLayout組件的使用方法。掌握ConstraintLayout組件的使用方法。2、實(shí)驗(yàn)內(nèi)容LinearLayout組件LinearLayout組件是進(jìn)行水平或垂直排列布局的容器組件。參考C0601工程,創(chuàng)建水平和垂直兩種線性布局以及嵌套布局,整體使用垂直線性布局,局部使用了多重嵌套的線性布局。RelativeLayout組件RelativeLayout組件是相對(duì)排列布局的容器組件。參考C0602工程,創(chuàng)建九個(gè)相對(duì)布局,“中”“頂端”“底端”“左端”和“右端”是相對(duì)于父標(biāo)簽的相對(duì)布局,“上”“下”“左”和“右”是相對(duì)于“中”的相對(duì)布局。TableLayout組件TableLayout組件是使用表格的形式布局的容器組件。參考C0603工程,創(chuàng)建表格布局顯示登錄界面,“登錄”按鈕占用了兩個(gè)單元格,其余控件各占用一個(gè)單元格。GridLayout組件GridLayout組件是網(wǎng)格形式排列布局的容器組件。參考C0604工程,創(chuàng)建網(wǎng)格布局顯示計(jì)算器的界面,第一行的控件占用了4列網(wǎng)格,第二行的控件各占用2列網(wǎng)格。FrameLayout組件FrameLayout組件是依次堆疊形式排列布局的容器組件。參考C0605工程,創(chuàng)建幀布局疊加顯示圖像片,文字和汽車圖像包含透明區(qū)域,透明區(qū)域直接顯示出背景圖像。ConstraintLayout組件ConstraintLayout組件是依次堆疊形式排列布局的容器組件。參考C0606工程,創(chuàng)建約束布局模仿朋友圈頂部的效果,背景圖像與其父標(biāo)簽進(jìn)行約束,頭像圖像與背景圖像進(jìn)行約束,昵稱文本與頭像圖像進(jìn)行約束。實(shí)驗(yàn)七Android的進(jìn)階控件與適配綁定2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誏istView控件的使用方法。掌握GirView控件的使用方法。掌握PopupWindow控件的使用方法。掌握ViewPager控件的使用方法。理解并掌握視圖綁定的使用方法。理解并掌握數(shù)據(jù)綁定使用方法。2、實(shí)驗(yàn)內(nèi)容ListView控件ListView控件是可以滾動(dòng)顯示列表信息的控件。參考C0701工程,從資源文件中獲取字符串?dāng)?shù)組顯示到ListView控件,并為L(zhǎng)istView控件添加頂部視圖,單擊列表項(xiàng)后顯示相應(yīng)的提示信息。GirView控件GirView控件是以滾動(dòng)網(wǎng)格形式顯示信息的控件。參考C0703工程,創(chuàng)建GirView控件分兩行排列商品類別,每個(gè)類別都配有文字和圖片,單擊后顯示相應(yīng)的提示信息。PopupWindow控件PopupWindow控件是懸浮顯示的控件。參考C0705工程,創(chuàng)建PopupWindow控件,單擊按鈕顯示PopupWindow控件,單擊懸浮框內(nèi)的按鈕后顯示提示信息且PopupWindow控件消失,PopupWindow控件顯示和消失的過稱中使用動(dòng)畫效果。當(dāng)PopupWindow控件顯示時(shí),單擊PopupWindow控件以外的區(qū)域懸浮框會(huì)消失,且不會(huì)觸發(fā)點(diǎn)擊區(qū)域控件的事件。ViewPager控件ViewFlipper控件是多視圖輪轉(zhuǎn)的控件。參考C0606工程,創(chuàng)建ViewFlipper控件,輪轉(zhuǎn)顯示圖片,單擊圖像后通過提示信息顯示當(dāng)前子視圖的索引號(hào),當(dāng)子視圖開始執(zhí)行顯示動(dòng)畫時(shí)當(dāng)前子視圖索引號(hào)就會(huì)改變。視圖綁定ViewBinding是通過為xml布局自動(dòng)生成一個(gè)綁定類,將控件的id轉(zhuǎn)換為綁定類的屬性,通過綁定類的實(shí)例直接調(diào)用控件的操作方式。參考C0708工程,使用視圖綁定的方式改造“歡迎引導(dǎo)頁(yè)”,實(shí)現(xiàn)精簡(jiǎn)代碼。數(shù)據(jù)綁定DataBinding是通過為xml布局自動(dòng)生成一個(gè)綁定類(和ViewBinding共用一個(gè)綁定類),將布局文件中控件的屬性與數(shù)據(jù)類的屬性或方法進(jìn)行關(guān)聯(lián),通過對(duì)數(shù)據(jù)類的實(shí)例間接修改控件屬性或處理控件事件的操作方式。參考C0709工程,使用數(shù)據(jù)綁定的方式改造“歡迎引導(dǎo)頁(yè)”,實(shí)現(xiàn)對(duì)控件屬性的單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定。點(diǎn)擊第四個(gè)分頁(yè)的“開始”按鈕,通過雙向綁定獲取控件的text屬性值,并使用通知顯示出來。實(shí)驗(yàn)八Android的基本程序單元4學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誂ctivity創(chuàng)建和刪除的使用方法。掌握Activity啟動(dòng)和關(guān)閉的使用方法。理解Activity的生命周期。掌握Activity的啟動(dòng)模式,并能夠正確使用。掌握Activity之間的數(shù)據(jù)傳遞方法。掌握Fragment的使用方法,能夠?qū)崿F(xiàn)導(dǎo)航分頁(yè)功能。2、實(shí)驗(yàn)內(nèi)容Activity的創(chuàng)建和刪除創(chuàng)建工程后,新建Activity,并設(shè)置的配置參數(shù)。然后刪除創(chuàng)建的Activity,并刪除配置參數(shù)。Activity的啟動(dòng)和關(guān)閉參考C0802工程,使用8種方式打開Activity,其中2個(gè)為顯式的方式啟動(dòng),1個(gè)為自定義隱式的方式啟動(dòng)和5個(gè)為使用預(yù)設(shè)隱式的方式啟動(dòng)。Activity的生命周期Activity的生命周期主要包含7個(gè)方法和6個(gè)狀態(tài)(Created、Started、Resumed、Paused、Stoped、Destroyed)。完整生命周期從回調(diào)onCreate()方法開始,到回調(diào)onDestroy()方法結(jié)束。可見生命周期從回調(diào)onStart()方法開始,到回調(diào)onStop()方法結(jié)束。前臺(tái)生命周期從回調(diào)onResume()方法開始,到回調(diào)onPause()方法結(jié)束。參考C0803工程,重寫MainActivity的7個(gè)生命周期方法,觀察生命周期的執(zhí)行順序。Activity的啟動(dòng)模式Activity啟動(dòng)模式本質(zhì)區(qū)別在于任務(wù)棧的分配,共有四種啟動(dòng)模式:standard、singleTop、singleTask和singleInstance。啟動(dòng)模式需要在AndroidManifest.xml文件中,設(shè)置android:launchMode屬性進(jìn)行設(shè)置,默認(rèn)值是standard。參考C0804工程,啟動(dòng)standard標(biāo)準(zhǔn)模式的Activity時(shí),創(chuàng)建一個(gè)新的實(shí)例,放置在啟動(dòng)該Activity的任務(wù)棧頂部。參考C0805工程,啟動(dòng)singleTop棧頂復(fù)用模式模式的Activity處于當(dāng)前棧的頂部時(shí),不會(huì)創(chuàng)建新的實(shí)例,而是直接啟動(dòng)該Activity。參考C0806工程,任務(wù)棧中存在singleTask棧內(nèi)復(fù)用模式的Activity時(shí),再次啟動(dòng)該Activity時(shí),棧內(nèi)該Activity上面的所有Activity全部出棧,并且會(huì)回調(diào)該實(shí)例的onNewIntent()方法。參考C0807工程,singleInstance單例模式的Activity除了具有singleTask模式特性外,還具有全局唯一性。系統(tǒng)中只能存在一個(gè)實(shí)例且單獨(dú)占用一個(gè)任務(wù)棧,被該Activity開啟的其他Activity會(huì)分配到其他任務(wù)棧內(nèi)。首次啟動(dòng)該Activity時(shí),會(huì)新建任務(wù)棧存放該Activity實(shí)例。再次啟動(dòng)該Activity時(shí),除非該Activity實(shí)例已經(jīng)銷毀,否則不會(huì)新棧內(nèi)創(chuàng)建新的實(shí)例;重用該Activity實(shí)例,不會(huì)調(diào)用onCreat()方法,會(huì)調(diào)用onNewIntent()方法。Activity的數(shù)據(jù)傳遞啟動(dòng)和關(guān)閉Activity可以通過Intent對(duì)象傳遞數(shù)據(jù)。參考C0808工程,簡(jiǎn)單數(shù)據(jù)類型的數(shù)據(jù)通過Intent對(duì)象在各Activity之間進(jìn)行傳遞,Intent類的putExtra()方法提供了豐富的重載方法,可以傳遞不同類型的數(shù)據(jù)。關(guān)閉Activity時(shí),還可以回傳數(shù)據(jù)。導(dǎo)航分頁(yè)的主界面Fragment是嵌入到Activity的程序單元,必須依賴于Activity,不能獨(dú)立存在的。有獨(dú)立的生命周期,能接收輸入事件,Activity可以動(dòng)態(tài)添加或刪除Fragment。一個(gè)Activity里可以包含多個(gè)Fragment,可以實(shí)現(xiàn)分頁(yè)導(dǎo)航功能。參考C0809工程,底部包含5個(gè)導(dǎo)航按鈕,第5個(gè)按鈕上默認(rèn)顯示數(shù)字圓點(diǎn)提示。單擊導(dǎo)航按鈕后,顯示數(shù)字圓點(diǎn)提示會(huì)消失,頂部的標(biāo)題會(huì)相應(yīng)改變,并且中間的區(qū)域會(huì)顯示相應(yīng)的Fragment。每個(gè)Fragment都包含一個(gè)“顯示TAB圓點(diǎn)”按鈕,單擊后相應(yīng)的導(dǎo)航按鈕會(huì)顯示數(shù)字圓點(diǎn)提示。實(shí)驗(yàn)九Android的后臺(tái)服務(wù)與廣播3學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誗ervice開啟和停止的方法。掌握Service綁定和數(shù)據(jù)傳遞的方法。掌握Service顯示Notification的方法。掌握顯式和隱式接收廣播的方法。掌握發(fā)送標(biāo)準(zhǔn)廣播和有序廣播的方法。2、實(shí)驗(yàn)內(nèi)容Service的開啟和停止參考C0901工程,創(chuàng)建Service類,命名為MyService。單擊“啟動(dòng)SERVICE”按鈕啟動(dòng)MyService類實(shí)例在后臺(tái)運(yùn)行,單擊“停止SERVICE”按鈕停止MyService類實(shí)例的運(yùn)行。Service的綁定和數(shù)據(jù)傳遞參考C0902工程,創(chuàng)建Service類,命名為MyService,重寫聲明周期方法,聲明getSecond()方法用于獲取運(yùn)行時(shí)間。單擊“啟動(dòng)SubActivity”按鈕啟動(dòng)SubActivity。在SubActivity中,單擊“啟動(dòng)Service”按鈕啟動(dòng)MyService實(shí)例,單擊“綁定Service”按鈕綁定MyService實(shí)例,再單擊“獲取Service運(yùn)行時(shí)間按鈕”會(huì)通過提示信息顯示Service已經(jīng)運(yùn)行的時(shí)間。未停止Service時(shí),關(guān)閉SubActivity會(huì)停止運(yùn)行Service。Service顯示Notification參考C0903工程,使用Service顯示前臺(tái)通知。單擊“啟動(dòng)前臺(tái)通知服務(wù)”按鈕,會(huì)在狀態(tài)欄顯示通知圖標(biāo),將狀態(tài)欄下拉后會(huì)看到通知。單擊“停止前臺(tái)通知服務(wù)”按鈕會(huì)關(guān)閉通知,否則即使關(guān)閉該App通知依然不會(huì)消失。顯式和隱式接收廣播參考C0904工程,通過BroadcastReceiver組件實(shí)現(xiàn)顯式和隱式接收廣播。單擊“注冊(cè)廣播接收器”按鈕,不但能夠?qū)W(wǎng)絡(luò)、屏幕和電量等隱式廣播進(jìn)行接收,還能對(duì)自定義的顯式廣播進(jìn)行接收。發(fā)送標(biāo)準(zhǔn)廣播和有序廣播參考C0905工程,新建兩個(gè)自定義廣播接收器類:MyBroadcastReceiver1和MyBroadcastReceiver2,用于接收有序廣播。創(chuàng)建三個(gè)按鈕,分別發(fā)送標(biāo)準(zhǔn)廣播、連續(xù)有序廣播和單次有序廣播。實(shí)驗(yàn)十Android的數(shù)據(jù)存儲(chǔ)與共享4學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誗haredPreferences接口保存本地?cái)?shù)據(jù),實(shí)現(xiàn)用戶保存登錄數(shù)據(jù)。掌握SQLite組件創(chuàng)建并使用本地?cái)?shù)據(jù)庫(kù),實(shí)現(xiàn)自定義通訊錄數(shù)據(jù)的保存。掌握ContentProvider組件向所在的App提供數(shù)據(jù),以及向其他App提供數(shù)據(jù)。掌握J(rèn)SONObject類合成和解析數(shù)據(jù)。2、實(shí)驗(yàn)內(nèi)容用戶登陸SharedPreferences接口主要用于獲取共享偏好設(shè)置數(shù)據(jù)。參考C1001工程,App常用的登錄功能,登陸后保存用戶的登錄數(shù)據(jù),再次打開App時(shí)會(huì)自動(dòng)登錄。登陸后單擊“退出”按鈕,可以清除用戶登錄數(shù)據(jù),然后再次打開App時(shí)需要登錄。自定義通訊錄SQLite組件是一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),無服務(wù)器端,零配置,運(yùn)算速度快,占用資源少,支持大部分標(biāo)準(zhǔn)SQL語法。參考C1002工程,使用SQLite進(jìn)行存儲(chǔ)數(shù)據(jù)的通訊錄,頂部使用ListView控件顯示通訊錄中的聯(lián)系人,單擊后在底部的EditText控件中顯示該聯(lián)系人的信息,可以通過底部的按鈕對(duì)該聯(lián)系人進(jìn)行相應(yīng)的操作或顯示其所有聯(lián)系人。自定義內(nèi)容提供者ContentProvider組件不但可以向所在的App提供數(shù)據(jù),還可以向其他App提供數(shù)據(jù)。參考C1003工程和C1004工程,兩個(gè)App之間的數(shù)據(jù)訪問和修改,模仿了系統(tǒng)通訊錄提供內(nèi)容服務(wù)的方式。合成和解析JSON數(shù)據(jù)JSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換方法,是基于JavaScript的一個(gè)子集,主要用于網(wǎng)絡(luò)或程序之間傳遞數(shù)據(jù)。參考C1006工程,模擬發(fā)布朋友圈或微博動(dòng)態(tài)前合成JSON,對(duì)JSON數(shù)據(jù)進(jìn)行解析后顯示。單擊“合成單行”或“合成多行”按鈕,會(huì)在下方顯示合成后的單行或多行JSON字符串。單擊“清空”按鈕,清空頂部EditText控件的內(nèi)容。然后單擊“解析”按鈕,將合成的JSON數(shù)據(jù)解析后顯示在頂部相應(yīng)的EditText控件內(nèi)。實(shí)驗(yàn)十一Android的多媒體與傳感器4學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆斋@取權(quán)限調(diào)用內(nèi)置相機(jī)拍照和錄制視頻,并保存在相冊(cè)內(nèi)的方法。掌握AudioRecord類讀取麥克風(fēng)采集的音頻數(shù)據(jù)流的方法。掌握調(diào)用運(yùn)動(dòng)類傳感器的使用方法,并實(shí)現(xiàn)搖一搖的功能。掌握調(diào)用位置類傳感器的使用方法,并實(shí)現(xiàn)指南針的功能。2、實(shí)驗(yàn)內(nèi)容拍照、選取和顯示圖片獲取權(quán)限后使用系統(tǒng)相機(jī)App拍攝照片以及使用系統(tǒng)相冊(cè)選取圖片。參考C1101工程,首次運(yùn)行時(shí)會(huì)彈出權(quán)限請(qǐng)求的系統(tǒng)對(duì)話框,單擊“拒絕”按鈕后會(huì)彈出自定義的對(duì)話框提示需要開啟的權(quán)限,再單擊“打開應(yīng)用設(shè)置”按鈕。單擊“拍照”按鈕會(huì)調(diào)用系統(tǒng)相機(jī),拍照后返回的拍攝照片畫質(zhì)較低不適合實(shí)際使用;單擊“拍照(指定位置保存)”按鈕會(huì)調(diào)用系統(tǒng)相機(jī),拍照后返回的拍攝照片畫質(zhì)正常,保存在指定文件夾中,并且能夠顯示在系統(tǒng)相冊(cè)中;單擊“選取圖片”按鈕會(huì)調(diào)用系統(tǒng)相冊(cè)選取照片,選取照片后調(diào)用剪裁的功能,進(jìn)行剪裁后顯示方形圖像。調(diào)用系統(tǒng)相機(jī)拍照不會(huì)自動(dòng)將照片保存顯示在系統(tǒng)相冊(cè)中,需要?jiǎng)?chuàng)建保存照片的文件,掃描媒體文件并發(fā)送廣播才會(huì)顯示在系統(tǒng)相冊(cè)中。錄制、選取和播放視頻獲取權(quán)限后使用系統(tǒng)相機(jī)App錄制視頻以及使用系統(tǒng)相冊(cè)選取視頻。參考C1102工程,錄制視頻后保存到系統(tǒng)相冊(cè)內(nèi),使用VideoView控件播放視頻。單擊“錄制視頻”按鈕調(diào)用系統(tǒng)相機(jī)可以錄制15秒以內(nèi)的視頻,單擊“選取視頻”按鈕調(diào)用系統(tǒng)相冊(cè)選取視頻后在VideoView控件中播放,單擊VideoView控件可以顯示出播放控制器。AudioRecord錄音AudioRecord類用于讀取麥克風(fēng)采集的音頻數(shù)據(jù)流。參考C1105工程,使用不同模式通過AudioRecord錄制音頻,然后使用AudioTrack播放錄音。單擊“開始錄音”按鈕開始錄音后會(huì)顯示已經(jīng)錄制的時(shí)間,底部顯示錄制音頻文件保存的文件路徑。該按鈕文字變成了“暫?!保瑔螕艉髸和d浺?,按鈕文字變成“繼續(xù)”,再次單擊后繼續(xù)錄音。單擊“結(jié)束錄音”按鈕停止錄音,單擊“播放聲音”按鈕播放錄制的音頻。由于虛擬設(shè)備無法使用麥克風(fēng),因此需要使用物理設(shè)備運(yùn)行才能錄制和播放音頻。搖一搖比大小運(yùn)動(dòng)類傳感器用于測(cè)量設(shè)備的運(yùn)動(dòng),包含加速度傳感器和陀螺儀傳感器。參考C1107工程,搖動(dòng)手機(jī)產(chǎn)生0-9隨機(jī)數(shù)的聚會(huì)小游戲。單擊“開始”按鈕,搖動(dòng)手機(jī)會(huì)自動(dòng)生成數(shù)字。如果使用虛擬設(shè)備運(yùn)行,需要打開虛擬傳感器的控制界面,左右拖拽Y軸移動(dòng)的滑動(dòng)條模擬上下?lián)u晃效果。指南針位置類傳感器用于測(cè)量設(shè)備的物理位置或與附近物體的距離,包含地磁場(chǎng)傳感器、方向傳感器和距離傳感器。參考C1108工程,指南針以及手機(jī)姿態(tài)的數(shù)據(jù),單擊虛擬設(shè)備右側(cè)的旋轉(zhuǎn)按鈕可以改變手機(jī)的方向,可以觀察到方向和數(shù)據(jù)的變化。實(shí)驗(yàn)十二Android的HTTP網(wǎng)絡(luò)通信4學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誋ttpURLConnection類的屬性和方法。掌握使用HttpURLConnection類加載存儲(chǔ)在服務(wù)器端的圖片的方法。掌握使用POST方式和GET方式向服務(wù)器端發(fā)送數(shù)據(jù)和接收服務(wù)器端數(shù)據(jù)的方法。2、實(shí)驗(yàn)內(nèi)容加載網(wǎng)絡(luò)圖片(帶緩存)使用HttpURLConnection類下載圖片并進(jìn)行本地緩存,以及清除本地緩存。參考C1201工程,單擊“加載圖片”按鈕,開始下載圖片,圖片下載完成后保存在本地緩存文件夾內(nèi),然后顯示在ImageView控件中。由于沒有下載提示,只有圖片下載后才能看到下載是否成功。單擊“清除緩存”按鈕,清除本地緩存,ImageView控件顯示R.mipmap.img_error_m資源圖片。發(fā)布動(dòng)態(tài)(POST方式)使用HttpURLConnection類發(fā)送帶附件的POST請(qǐng)求,服務(wù)器端檢驗(yàn)后返回成功值后關(guān)閉Activity。參考C1204工程,單擊“動(dòng)態(tài)列表”按鈕,啟動(dòng)DailyListActivity。單擊?按鈕,使用系統(tǒng)提供的功能選取圖片,選取圖片后對(duì)圖片進(jìn)行壓縮保存在本地緩存文件夾。這樣處理不但可以避免OOM異常的出現(xiàn),還能減少上傳數(shù)據(jù)的大小。單擊“發(fā)布”按鈕,將控件輸入的昵稱和內(nèi)容以及選擇后緩存在本地的緩存圖片,合成為POST數(shù)據(jù)流后進(jìn)行發(fā)送。動(dòng)態(tài)列表(GET方式)使用HttpURLConnection類發(fā)送GET請(qǐng)求獲取動(dòng)態(tài)列表的數(shù)據(jù),服務(wù)器端返回動(dòng)態(tài)列表的JSON數(shù)據(jù)。參考C1205工程,對(duì)JSON數(shù)據(jù)進(jìn)行解析后使用ListView控件顯示動(dòng)態(tài)的昵稱和內(nèi)容、下載圖片并顯示。實(shí)驗(yàn)十三Android的快速開發(fā)套件4學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康恼莆誖ecyclerView控件的使用方法,實(shí)現(xiàn)瀑布流顯示功能。掌握SwipeRefreshLayout組件的使用方法,實(shí)現(xiàn)下拉刷新和上拉加載的動(dòng)態(tài)列表功能。掌握Biometric組件的使用方法,實(shí)現(xiàn)模擬指紋支付功能。掌握ViewModel組件的使用方法,實(shí)現(xiàn)重建視圖功能。掌握LiveData組件的使用方法,實(shí)現(xiàn)聯(lián)想搜索關(guān)鍵字功能。2、實(shí)驗(yàn)內(nèi)容瀑布流動(dòng)態(tài)列表使用RecyclerView類和RecyclerView.Adapter類實(shí)現(xiàn)使用瀑布流的形式顯示動(dòng)態(tài)列表。參考C1301工程,單擊子視圖中的圖片會(huì)通過提示信息顯示當(dāng)前的子視圖的位置。下拉刷新和上拉加載的動(dòng)態(tài)列表使用SwipeRefreshLayout類實(shí)現(xiàn)上拉刷新和下拉加載功能的瀑布流動(dòng)態(tài)列表。參考C1302工程,頂部時(shí)下拉刷新動(dòng)態(tài)列表;底部時(shí)上拉加載更多的動(dòng)態(tài)到列表中;打開飛行模式后,再上拉加載更多時(shí),腳頁(yè)子視圖顯示“網(wǎng)絡(luò)故障稍后再試”。指紋支付使用BiometricManager組件模擬支付時(shí)的指紋驗(yàn)證。參考C1303工程,單擊“支付”按鈕顯示生物識(shí)別提示框,在模擬器的“Extendedcontrols”窗口的“Fingerprint”選項(xiàng)卡中,選擇“Finger1”,然后單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論