




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
項目五健康助手學(xué)習(xí)目標(biāo)通過U酒保項目健康助手模塊的實現(xiàn),學(xué)習(xí)折線圖的構(gòu)建方法,了解圖片下沉動畫的使用方法,掌握如何使用AsyncTask類實現(xiàn)更新UI,在任務(wù)實現(xiàn)過程中:了解ViewGroup和View區(qū)別掌握自定義控件的使用掌握自定義動畫的使用掌握AsyncTask類的使用任務(wù)路徑情景導(dǎo)入U酒保研發(fā)團隊根據(jù)用戶的需求設(shè)計并開發(fā)了酒精數(shù)據(jù)統(tǒng)計功能,可將歷史酒精濃度值以折線圖的方式展示,方便用戶再次使用時進行查詢比對。該軟件還設(shè)有娛樂模塊、微博模塊、笑話模塊用來豐富業(yè)余生活。本項目通過數(shù)據(jù)監(jiān)測模塊的實現(xiàn),講解了折線圖以及自定義控件的使用方法。自定義組件Android中所有的UI類都以View和ViewGroup為基礎(chǔ)
。其中View是與用戶交互控件的父類,在項目開發(fā)過程中,具有重要作用,主要用于在界面中獲取矩形區(qū)域,完整的實現(xiàn)自定義組件。ViewGroup是存放View的容器,主要用于管理其包含的View控件。View類中提供了多種方法用來構(gòu)建自定義組件。
自定義組件簡介View定義了完整的繪圖基本操作,用于自定義組件的構(gòu)建,在構(gòu)建過程中,需重寫onMeasure()、onLayout()、onDraw()方法。onMeasure()的用法。繪制View前使用onMeasure()調(diào)用setMeasuredDimension()方法對其進行測量。onLayout()的用法。onLayout()主要根據(jù)View在Measure()中測量的大小決定其擺放位置。自定義組件方法自定義組件onDraw()的用法。Canvas為系統(tǒng)提供一塊內(nèi)存區(qū)域,所有繪制都在該內(nèi)存中進行,繪制完成后系統(tǒng)將布局顯示到屏幕中。該Canvas對象提供各種繪制點、線、矩形、圓、位圖的方法,基本可滿足各種繪制要求。onDraw()主要是用來把所有View都繪制在同一個畫布上,達到將canvas內(nèi)容顯示屏幕上。在繪制自定義組件時先調(diào)用onDraw()方法后調(diào)用Draw()方法實現(xiàn)。自定義組件方法自定義組件Animation提供了一系列的動畫效果的API,具有漸變透明度動畫效果(alph),漸變尺寸伸縮動畫效果(scale),畫面轉(zhuǎn)換位置移動動畫效果(translate),畫面轉(zhuǎn)移旋轉(zhuǎn)動畫效果(rotate)等四種動畫效果。Animation動畫簡介自定義動畫Animation通過對View完成一系列圖形變換,實現(xiàn)動畫效果。定義一組指令,指令指定圖形變換類型、觸發(fā)時間、持續(xù)時間。指令可以是以XML文件方式定義,也可以是以源代碼方式定義。程序沿時間線執(zhí)行指令便可實現(xiàn)動畫效果。Animation方法自定義動畫(1)XML動畫Animation從總體上可以分為三類:TweenedAnimation(補間動畫),補間動畫方式如表5.3所示。Animation方法自定義動畫FrameAnimation(逐幀動畫),逐幀動畫方法如表5.4所示。Animation方法自定義動畫PropertyAnimation(屬性動畫),該類Animation與補間動畫相似,屬性動畫屬性如表5.5所示。Animation方法自定義動畫(2)自定義動畫Android中的圖形繪制需要繼承View組件,并且重寫它的onDraw(Canvascanvas)方法。重寫onDraw(Canvascanvas)方法時涉及繪圖API:Canvas,Canvas代表“依附”于指定的View畫布。Animation方法自定義動畫自定義動畫實現(xiàn)步驟如下所示:自定義View的派生類AnimatorView,調(diào)用圖形數(shù)據(jù),并設(shè)置畫筆及其風(fēng)格。在派生類AnimatorView中定義待繪制的圖形數(shù)據(jù)(寬度、間距、速度、顏色、次數(shù))。通過重載onDraw()方法,設(shè)置畫筆、坐標(biāo)位置,實現(xiàn)矩形方塊的繪制。在MainActivity中遍歷AnimatorView類,展示該動畫展示在界面。通過以上步驟實現(xiàn)如圖5.7自定義動畫效果。Animation方法自定義動畫AsyncTask是Android提供的輕量級異步類,可直接繼承AsyncTask在類中實現(xiàn)異步操作,并提供接口反饋當(dāng)前異步執(zhí)行程度(可以通過接口實現(xiàn)UI進度更新),然后反饋執(zhí)行結(jié)果傳遞到UI主線程。AsyncTask是封裝后的后臺任務(wù)類,具有結(jié)構(gòu)清晰、功能定義明確,對于多個后臺任務(wù)時,具有簡單,清晰等特點。AsyncTask簡介異步類AsyncTask抽象出后臺線程運行的五個狀態(tài),并提供了五個回調(diào)函數(shù):onPreExecute():該回調(diào)函數(shù)在任務(wù)被執(zhí)行后立即由UI線程調(diào)用。該步驟用來建立任務(wù),在用戶接口(UI)上顯示進度條(準(zhǔn)備運行)AsyncTask類方法異步類doInBackground(Params...):該回調(diào)函數(shù)由后臺線程在onPreExecute()方法執(zhí)行結(jié)束后立即調(diào)用。在這里執(zhí)行耗時的后臺計算。計算的結(jié)果必須由該函數(shù)返回,并被傳遞到onPostExecute()中。在該函數(shù)內(nèi)也可以使用publishProgress(Progress...)來發(fā)布一個或多個進度單位(unitsofprogress)。這些值將會在onProgressUpdate(Progress...)中被發(fā)布到UI線程(后臺運行)AsyncTask類方法異步類onProgressUpdate(Progress...):該函數(shù)由UI線程在publishProgress(Progress...)方法調(diào)用完后被調(diào)用。一般用于動態(tài)顯示一個進度條(進度更新)onPostExecute(Result):當(dāng)后臺計算結(jié)束后調(diào)用。后臺計算的結(jié)果會被作為參數(shù)傳遞給這一函數(shù)(完成后臺任務(wù))onCancelled():在調(diào)用AsyncTask的cancel()方法時調(diào)用(取消任務(wù))AsyncTask類方法異步類實現(xiàn)進倒計時的功能。時長5s,當(dāng)時間結(jié)束時在界面顯示結(jié)束時間并提醒用戶倒計時結(jié)束,效果如圖5.8、圖5.9所示。使用AsyncTask類示例異步類實現(xiàn)倒計時功能步驟如下所示:(1)初始化界面,點擊“開始”按鈕,調(diào)用異步類開始倒計時。(2)構(gòu)建AsyncTask方法。(3)TestAsyncTask被后臺線程執(zhí)行后,UI線程被調(diào)用,一般用于初始化界面控件。(4)調(diào)用doInBackground()方法進行數(shù)據(jù)的實時獲取并將數(shù)據(jù)進行返回。(5)將doInBackground()方法中返回的數(shù)據(jù)顯示到界面,進行UI的實時更新。(6)運行項目,實現(xiàn)圖5.8、圖5.9所示效果。使用AsyncTask類示例異步類通過如下步驟實現(xiàn)如圖5.2所示U酒保健康助手模塊。第一步:在Androidstudio中創(chuàng)建一個Android工程,命名為“UJB_AIFragment”。第二步:導(dǎo)入實現(xiàn)折線圖MPChartLib.jar,具體步驟如下所示。(1)復(fù)制MPChartLib.jar包,添加到如圖5.11所示目錄下。使用AsyncTask類示例任務(wù)實施(2)選擇該項目,右擊鼠標(biāo)出現(xiàn)如圖5.12所示界面,點擊“OpenModuleSettings”,跳轉(zhuǎn)到下一界面,選擇appDependencise。(3)單擊“+”顯示選擇欄,如圖5.14所示。選擇Filedependency,跳轉(zhuǎn)到下一界面,選擇添加的jar包后點擊“OK”。第三步:使用onDraw()方法,新建MyImageView.java自定義矩形圖片區(qū)域,用于放置笑話、娛樂、科普等圖片。第四步:實現(xiàn)自定義界面布局,調(diào)用MPChartLib.jar包與MyImageView.java顯示矩形圖片框和折線圖界面fragment_advise.xml。使用AsyncTask類示例任務(wù)實施第五步:獲取酒精數(shù)據(jù)Json串并解析,設(shè)置折線圖屬性,并將解析的酒精濃度數(shù)據(jù)添加到折線圖中進行顯示。第六步:使用OnClick()方法設(shè)置圖片點擊跳轉(zhuǎn)事件,點擊界面中科普、笑話、娛樂等圖片,實現(xiàn)對應(yīng)界面的跳轉(zhuǎn)。第七步:使用onTouchEvent()方法實現(xiàn)圖片觸摸事件,當(dāng)用戶觸摸圖片邊緣或中心時,實現(xiàn)圖片對應(yīng)部位的下沉效果。第八步:點擊科普按鈕,跳轉(zhuǎn)到科普界面通過異步類獲取科普信息,并顯示到界面。第九步:運行程序,運行結(jié)果如圖5.2所示。使用AsyncTask類示例任務(wù)實施本項目主要介紹了U酒保健康助手模塊的實現(xiàn)。通過自定義組件、自定義動畫,實現(xiàn)折線圖和圖片下沉效果,采用異步請求獲取網(wǎng)絡(luò)數(shù)據(jù),并更新UI。在項目學(xué)習(xí)過程中可以了解自定義組件和自定義動畫的使用方法,掌握異步類的使用原理。任務(wù)總結(jié)measure測量layout布局draw繪制
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 3781.9-2025乙炔炭黑第9部分:電阻率的測定
- 個人信用記錄維護義務(wù)承諾書6篇
- 品牌推廣與營銷策略標(biāo)準(zhǔn)化方案
- 2025年甘肅酒泉市玉門市引進急需緊缺人才(第一批)模擬試卷及答案詳解(新)
- 企業(yè)文化建設(shè)方案模板塑造核心價值
- 2025杭州拱墅區(qū)東新街道辦事處編外工作人員招聘4人模擬試卷及參考答案詳解一套
- 2025年金華義烏市中心醫(yī)院招聘非編人員6人考前自測高頻考點模擬試題及答案詳解(歷年真題)
- 行業(yè)服務(wù)領(lǐng)域創(chuàng)新成果保護承諾函5篇
- 2025-2026學(xué)年江西省宜春市豐城市部分高中高一上學(xué)期開學(xué)考試英語試題(解析版)
- 2025吉林白山市渾江區(qū)事業(yè)單位招聘高層次人才和工作人員(含專項招聘高校畢業(yè)生)57人模擬試卷及答案詳解(各地真題)
- 2025廣東東莞市寮步鎮(zhèn)人民政府招聘專職安全員10人考前自測高頻考點模擬試題及答案詳解一套
- 湘潭鋼鐵集團有限公司2026屆校園操作類招聘備考考試題庫附答案解析
- 山東初級注冊安全工程師(安全生產(chǎn)法律法規(guī))題庫及答案(2025年)
- 2025天津宏達投資控股有限公司及所屬企業(yè)招聘工作人員筆試模擬試題及答案解析
- 新安全生產(chǎn)法課件
- 恐龍媽媽藏蛋課件
- 鐵道概論高職PPT完整全套教學(xué)課件
- 鄭州師范學(xué)院教師招聘考試真題2022
- 北京市中考新定義練習(xí)題
- 超聲引導(dǎo)下肝穿刺活檢課件
- 社區(qū)矯正人員心理健康講座課件
評論
0/150
提交評論