版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目五健康助手學(xué)習(xí)目標(biāo)通過(guò)U酒保項(xiàng)目健康助手模塊的實(shí)現(xiàn),學(xué)習(xí)折線圖的構(gòu)建方法,了解圖片下沉動(dòng)畫(huà)的使用方法,掌握如何使用AsyncTask類(lèi)實(shí)現(xiàn)更新UI,在任務(wù)實(shí)現(xiàn)過(guò)程中:了解ViewGroup和View區(qū)別掌握自定義控件的使用掌握自定義動(dòng)畫(huà)的使用掌握AsyncTask類(lèi)的使用任務(wù)路徑情景導(dǎo)入U(xiǎn)酒保研發(fā)團(tuán)隊(duì)根據(jù)用戶(hù)的需求設(shè)計(jì)并開(kāi)發(fā)了酒精數(shù)據(jù)統(tǒng)計(jì)功能,可將歷史酒精濃度值以折線圖的方式展示,方便用戶(hù)再次使用時(shí)進(jìn)行查詢(xún)比對(duì)。該軟件還設(shè)有娛樂(lè)模塊、微博模塊、笑話模塊用來(lái)豐富業(yè)余生活。本項(xiàng)目通過(guò)數(shù)據(jù)監(jiān)測(cè)模塊的實(shí)現(xiàn),講解了折線圖以及自定義控件的使用方法。自定義組件Android中所有的UI類(lèi)都以View和ViewGroup為基礎(chǔ)
。其中View是與用戶(hù)交互控件的父類(lèi),在項(xiàng)目開(kāi)發(fā)過(guò)程中,具有重要作用,主要用于在界面中獲取矩形區(qū)域,完整的實(shí)現(xiàn)自定義組件。ViewGroup是存放View的容器,主要用于管理其包含的View控件。View類(lèi)中提供了多種方法用來(lái)構(gòu)建自定義組件。
自定義組件簡(jiǎn)介View定義了完整的繪圖基本操作,用于自定義組件的構(gòu)建,在構(gòu)建過(guò)程中,需重寫(xiě)onMeasure()、onLayout()、onDraw()方法。onMeasure()的用法。繪制View前使用onMeasure()調(diào)用setMeasuredDimension()方法對(duì)其進(jìn)行測(cè)量。onLayout()的用法。onLayout()主要根據(jù)View在Measure()中測(cè)量的大小決定其擺放位置。自定義組件方法自定義組件onDraw()的用法。Canvas為系統(tǒng)提供一塊內(nèi)存區(qū)域,所有繪制都在該內(nèi)存中進(jìn)行,繪制完成后系統(tǒng)將布局顯示到屏幕中。該Canvas對(duì)象提供各種繪制點(diǎn)、線、矩形、圓、位圖的方法,基本可滿足各種繪制要求。onDraw()主要是用來(lái)把所有View都繪制在同一個(gè)畫(huà)布上,達(dá)到將canvas內(nèi)容顯示屏幕上。在繪制自定義組件時(shí)先調(diào)用onDraw()方法后調(diào)用Draw()方法實(shí)現(xiàn)。自定義組件方法自定義組件Animation提供了一系列的動(dòng)畫(huà)效果的API,具有漸變透明度動(dòng)畫(huà)效果(alph),漸變尺寸伸縮動(dòng)畫(huà)效果(scale),畫(huà)面轉(zhuǎn)換位置移動(dòng)動(dòng)畫(huà)效果(translate),畫(huà)面轉(zhuǎn)移旋轉(zhuǎn)動(dòng)畫(huà)效果(rotate)等四種動(dòng)畫(huà)效果。Animation動(dòng)畫(huà)簡(jiǎn)介自定義動(dòng)畫(huà)Animation通過(guò)對(duì)View完成一系列圖形變換,實(shí)現(xiàn)動(dòng)畫(huà)效果。定義一組指令,指令指定圖形變換類(lèi)型、觸發(fā)時(shí)間、持續(xù)時(shí)間。指令可以是以XML文件方式定義,也可以是以源代碼方式定義。程序沿時(shí)間線執(zhí)行指令便可實(shí)現(xiàn)動(dòng)畫(huà)效果。Animation方法自定義動(dòng)畫(huà)(1)XML動(dòng)畫(huà)Animation從總體上可以分為三類(lèi):TweenedAnimation(補(bǔ)間動(dòng)畫(huà)),補(bǔ)間動(dòng)畫(huà)方式如表5.3所示。Animation方法自定義動(dòng)畫(huà)FrameAnimation(逐幀動(dòng)畫(huà)),逐幀動(dòng)畫(huà)方法如表5.4所示。Animation方法自定義動(dòng)畫(huà)PropertyAnimation(屬性動(dòng)畫(huà)),該類(lèi)Animation與補(bǔ)間動(dòng)畫(huà)相似,屬性動(dòng)畫(huà)屬性如表5.5所示。Animation方法自定義動(dòng)畫(huà)(2)自定義動(dòng)畫(huà)Android中的圖形繪制需要繼承View組件,并且重寫(xiě)它的onDraw(Canvascanvas)方法。重寫(xiě)onDraw(Canvascanvas)方法時(shí)涉及繪圖API:Canvas,Canvas代表“依附”于指定的View畫(huà)布。Animation方法自定義動(dòng)畫(huà)自定義動(dòng)畫(huà)實(shí)現(xiàn)步驟如下所示:自定義View的派生類(lèi)AnimatorView,調(diào)用圖形數(shù)據(jù),并設(shè)置畫(huà)筆及其風(fēng)格。在派生類(lèi)AnimatorView中定義待繪制的圖形數(shù)據(jù)(寬度、間距、速度、顏色、次數(shù))。通過(guò)重載onDraw()方法,設(shè)置畫(huà)筆、坐標(biāo)位置,實(shí)現(xiàn)矩形方塊的繪制。在MainActivity中遍歷AnimatorView類(lèi),展示該動(dòng)畫(huà)展示在界面。通過(guò)以上步驟實(shí)現(xiàn)如圖5.7自定義動(dòng)畫(huà)效果。Animation方法自定義動(dòng)畫(huà)AsyncTask是Android提供的輕量級(jí)異步類(lèi),可直接繼承AsyncTask在類(lèi)中實(shí)現(xiàn)異步操作,并提供接口反饋當(dāng)前異步執(zhí)行程度(可以通過(guò)接口實(shí)現(xiàn)UI進(jìn)度更新),然后反饋執(zhí)行結(jié)果傳遞到UI主線程。AsyncTask是封裝后的后臺(tái)任務(wù)類(lèi),具有結(jié)構(gòu)清晰、功能定義明確,對(duì)于多個(gè)后臺(tái)任務(wù)時(shí),具有簡(jiǎn)單,清晰等特點(diǎn)。AsyncTask簡(jiǎn)介異步類(lèi)AsyncTask抽象出后臺(tái)線程運(yùn)行的五個(gè)狀態(tài),并提供了五個(gè)回調(diào)函數(shù):onPreExecute():該回調(diào)函數(shù)在任務(wù)被執(zhí)行后立即由UI線程調(diào)用。該步驟用來(lái)建立任務(wù),在用戶(hù)接口(UI)上顯示進(jìn)度條(準(zhǔn)備運(yùn)行)AsyncTask類(lèi)方法異步類(lèi)doInBackground(Params...):該回調(diào)函數(shù)由后臺(tái)線程在onPreExecute()方法執(zhí)行結(jié)束后立即調(diào)用。在這里執(zhí)行耗時(shí)的后臺(tái)計(jì)算。計(jì)算的結(jié)果必須由該函數(shù)返回,并被傳遞到onPostExecute()中。在該函數(shù)內(nèi)也可以使用publishProgress(Progress...)來(lái)發(fā)布一個(gè)或多個(gè)進(jìn)度單位(unitsofprogress)。這些值將會(huì)在onProgressUpdate(Progress...)中被發(fā)布到UI線程(后臺(tái)運(yùn)行)AsyncTask類(lèi)方法異步類(lèi)onProgressUpdate(Progress...):該函數(shù)由UI線程在publishProgress(Progress...)方法調(diào)用完后被調(diào)用。一般用于動(dòng)態(tài)顯示一個(gè)進(jìn)度條(進(jìn)度更新)onPostExecute(Result):當(dāng)后臺(tái)計(jì)算結(jié)束后調(diào)用。后臺(tái)計(jì)算的結(jié)果會(huì)被作為參數(shù)傳遞給這一函數(shù)(完成后臺(tái)任務(wù))onCancelled():在調(diào)用AsyncTask的cancel()方法時(shí)調(diào)用(取消任務(wù))AsyncTask類(lèi)方法異步類(lèi)實(shí)現(xiàn)進(jìn)倒計(jì)時(shí)的功能。時(shí)長(zhǎng)5s,當(dāng)時(shí)間結(jié)束時(shí)在界面顯示結(jié)束時(shí)間并提醒用戶(hù)倒計(jì)時(shí)結(jié)束,效果如圖5.8、圖5.9所示。使用AsyncTask類(lèi)示例異步類(lèi)實(shí)現(xiàn)倒計(jì)時(shí)功能步驟如下所示:(1)初始化界面,點(diǎn)擊“開(kāi)始”按鈕,調(diào)用異步類(lèi)開(kāi)始倒計(jì)時(shí)。(2)構(gòu)建AsyncTask方法。(3)TestAsyncTask被后臺(tái)線程執(zhí)行后,UI線程被調(diào)用,一般用于初始化界面控件。(4)調(diào)用doInBackground()方法進(jìn)行數(shù)據(jù)的實(shí)時(shí)獲取并將數(shù)據(jù)進(jìn)行返回。(5)將doInBackground()方法中返回的數(shù)據(jù)顯示到界面,進(jìn)行UI的實(shí)時(shí)更新。(6)運(yùn)行項(xiàng)目,實(shí)現(xiàn)圖5.8、圖5.9所示效果。使用AsyncTask類(lèi)示例異步類(lèi)通過(guò)如下步驟實(shí)現(xiàn)如圖5.2所示U酒保健康助手模塊。第一步:在Androidstudio中創(chuàng)建一個(gè)Android工程,命名為“UJB_AIFragment”。第二步:導(dǎo)入實(shí)現(xiàn)折線圖MPChartLib.jar,具體步驟如下所示。(1)復(fù)制MPChartLib.jar包,添加到如圖5.11所示目錄下。使用AsyncTask類(lèi)示例任務(wù)實(shí)施(2)選擇該項(xiàng)目,右擊鼠標(biāo)出現(xiàn)如圖5.12所示界面,點(diǎn)擊“OpenModuleSettings”,跳轉(zhuǎn)到下一界面,選擇appDependencise。(3)單擊“+”顯示選擇欄,如圖5.14所示。選擇Filedependency,跳轉(zhuǎn)到下一界面,選擇添加的jar包后點(diǎn)擊“OK”。第三步:使用onDraw()方法,新建MyImageView.java自定義矩形圖片區(qū)域,用于放置笑話、娛樂(lè)、科普等圖片。第四步:實(shí)現(xiàn)自定義界面布局,調(diào)用MPChartLib.jar包與MyImageView.java顯示矩形圖片框和折線圖界面fragment_advise.xml。使用AsyncTask類(lèi)示例任務(wù)實(shí)施第五步:獲取酒精數(shù)據(jù)Json串并解析,設(shè)置折線圖屬性,并將解析的酒精濃度數(shù)據(jù)添加到折線圖中進(jìn)行顯示。第六步:使用OnClick()方法設(shè)置圖片點(diǎn)擊跳轉(zhuǎn)事件,點(diǎn)擊界面中科普、笑話、娛樂(lè)等圖片,實(shí)現(xiàn)對(duì)應(yīng)界面的跳轉(zhuǎn)。第七步:使用onTouchEvent()方法實(shí)現(xiàn)圖片觸摸事件,當(dāng)用戶(hù)觸摸圖片邊緣或中心時(shí),實(shí)現(xiàn)圖片對(duì)應(yīng)部位的下沉效果。第八步:點(diǎn)擊科普按鈕,跳轉(zhuǎn)到科普界面通過(guò)異步類(lèi)獲取科普信息,并顯示到界面。第九步:運(yùn)行程序,運(yùn)行結(jié)果如圖5.2所示。使用AsyncTask類(lèi)示例任務(wù)實(shí)施本項(xiàng)目主要介紹了U酒保健康助手模塊的實(shí)現(xiàn)。通過(guò)自定義組件、自定義動(dòng)畫(huà),實(shí)現(xiàn)折線圖和圖片下沉效果,采用異步請(qǐng)求獲取網(wǎng)絡(luò)數(shù)據(jù),并更新UI。在項(xiàng)目學(xué)習(xí)過(guò)程中可以了解自定義組件和自定義動(dòng)畫(huà)的使用方法,掌握異步類(lèi)的使用原理。任務(wù)總結(jié)measure測(cè)量layout布局draw繪制
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 不動(dòng)產(chǎn)交易合同書(shū)樣本(2024版)
- 2024年版無(wú)子女離婚合同法律范本版B版
- 2024年企業(yè)法律風(fēng)險(xiǎn)防范與合規(guī)咨詢(xún)服務(wù)合同匯編3篇
- 2024某互聯(lián)網(wǎng)公司與某內(nèi)容提供商關(guān)于2024年內(nèi)容服務(wù)合同
- 專(zhuān)業(yè)場(chǎng)地考察服務(wù)協(xié)議2024年版版B版
- 2024年版教育資源共享平臺(tái)開(kāi)發(fā)與運(yùn)營(yíng)合同
- 2024年酒店服務(wù)質(zhì)量改進(jìn)與投訴處理合同
- 泵站電工知識(shí)培訓(xùn)課件
- led燈珠購(gòu)銷(xiāo)合同(2024版)
- 2024年酒店燈具采購(gòu)協(xié)議
- 眼內(nèi)炎患者護(hù)理查房
- 電工維修培訓(xùn)資料 維修電工技術(shù)學(xué)習(xí) 維修電工常識(shí) 電工培訓(xùn)ppt課件
- 撲克牌24點(diǎn)練習(xí)題大全
- 螺絲英文簡(jiǎn)稱(chēng)
- 15MW風(fēng)力發(fā)電機(jī)
- 正面管教 讀書(shū)分享(課堂PPT)
- 教練技術(shù)CP理論P(yáng)PT課件
- 產(chǎn)品生命周期曲線(高清)
- 機(jī)械工程學(xué)報(bào)標(biāo)準(zhǔn)格式
- 東南大學(xué)文科揭榜掛帥重大平臺(tái)績(jī)效考核表
- 鉑銠合金漏板.
評(píng)論
0/150
提交評(píng)論