版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
鴻蒙應(yīng)用開發(fā)項目教程項目3設(shè)計鬧鐘程序云林科技為了更好地服務(wù)員工,將開發(fā)一款可以獨(dú)立使用的鬧鐘程序,公司經(jīng)理把這個任務(wù)交給了技術(shù)部黎工程師,并提出程序要有美觀的界面,可以方便地進(jìn)行各種操作;要有擴(kuò)展性,后期可以嵌入公司App;只需手機(jī)就可使用等要求。鬧鐘程序界面如圖3-1所示。項目導(dǎo)入圖3-1鬧鐘程序界面【項目分析】完成本項目需要用到動畫、公共事件、通知等相關(guān)知識。【知識目標(biāo)】了解常用的動畫。了解常用的公共事件和通知?!灸芰δ繕?biāo)】能夠熟練使用常用的動畫。能夠綜合使用動畫、公共事件、通知等來解決問題。能夠熟練完成常用公共事件的訂閱和通知發(fā)布?!舅仞B(yǎng)目標(biāo)】具有愛崗敬業(yè)的良好職業(yè)道德。3.1動畫
動畫是一種通過連續(xù)播放一系列畫面,使這些畫面在視覺上產(chǎn)生動態(tài)效果的藝術(shù)形式。
在鴻蒙系統(tǒng)中,動畫可以理解為一種通過為UI變化添加流暢度的過渡效果,也可以理解為一種能夠增強(qiáng)用戶界面交互體驗的重要手段。UI的一次改變稱為一個動畫幀,對應(yīng)一次屏幕刷新,而決定動畫流暢度的一個重要指標(biāo)是幀率(FrameRate),即每秒的幀數(shù),幀率越高,動畫越流暢。
產(chǎn)生動畫的方式是改變動畫屬性值并指定動畫參數(shù)。動畫參數(shù)包含動畫時長、變化規(guī)律(即曲線)等。當(dāng)動畫屬性值發(fā)生變化后,按照指定的動畫參數(shù),從原來的狀態(tài)過渡到新的狀態(tài),即形成一個動畫效果。3.1.1屬性動畫
屬性動畫是組件的某些通用屬性變化而觸發(fā)的過渡動畫,可以提升用戶體驗。屬性動畫支持的屬性包括width、height、backgroundColor、opacity、scale、rotate、translate等。
其接口如下。animation(value:{duration?:number,tempo?:number,curve?:string|Curve|ICurve,delay?:number,iterations:number,playMode?:PlayMode,onFinish?:()=>void})
其可選參數(shù)如下。duration:設(shè)置動畫時長,其默認(rèn)值為1000,單位為毫秒。tempo:設(shè)置動畫播放速度。該數(shù)值越大,動畫播放速度越快。值為0時,表示無動畫效果。其默認(rèn)值為1。curve:設(shè)置動畫曲線,其默認(rèn)值為Curve.EaseInOut(平滑的動畫曲線)。delay:設(shè)置動畫延遲播放時間,其默認(rèn)值為0,單位為毫秒,取值范圍是[0,+∞)。delay:設(shè)置動畫延遲播放時間,其默認(rèn)值為0,單位為毫秒,取值范圍是[0,+∞)。iterations:設(shè)置動畫播放次數(shù),其默認(rèn)值為1,取值范圍為[-1,+∞)。值為-1時表示無限次播放,值為0時表示無動畫效果。playMode:設(shè)置動畫播放模式,默認(rèn)播放完成后從頭開始播放,其默認(rèn)值為PlayMode.Normal。onFinish:狀態(tài)回調(diào),動畫播放完成時觸發(fā)。當(dāng)iterations設(shè)置為-1時,動畫效果無限循環(huán),不會停止,所以不會觸發(fā)此回調(diào)。圖3-2屬性動畫效果3.1.2顯式動畫
顯式動畫是由閉包(閉包是實現(xiàn)動畫效果的一種方式,它允許開發(fā)者在函數(shù)內(nèi)部定義一個函數(shù),此函數(shù)可以訪問外部函數(shù)的變量,使得開發(fā)者可以在動畫過程中動態(tài)地修改狀態(tài),并且這些狀態(tài)的變化會觸發(fā)動畫效果)內(nèi)的變化觸發(fā)的動畫,這些變化包括由數(shù)據(jù)變化引起的組件的增刪、組件屬性的變化等。圖3-3顯式動畫效果3.1.3轉(zhuǎn)場動畫
轉(zhuǎn)場動畫包括組件內(nèi)轉(zhuǎn)場動畫、頁面間轉(zhuǎn)場動畫和共享元素轉(zhuǎn)場動畫。1.組件內(nèi)轉(zhuǎn)場動畫
組件內(nèi)轉(zhuǎn)場動畫通過transition屬性配置轉(zhuǎn)場參數(shù),用于在容器組件中插入或刪除組件時顯示過渡效果,可以提升用戶體驗(和animateTo結(jié)合使用時才能生效,動畫時長、動畫曲線、動畫延遲播放時間沿用animateTo中的配置)。圖3-4組件內(nèi)轉(zhuǎn)場動畫效果
屬性transition的參數(shù)類型為TransitionEffect,功能是設(shè)置組件插入或刪除時的過渡效果,以及轉(zhuǎn)場動畫結(jié)束回調(diào)。不設(shè)置任何過渡效果時,默認(rèn)有透明度從0到1的過渡效果。若設(shè)置了其他過渡效果,以設(shè)置的過渡效果為準(zhǔn)。2.頁面間轉(zhuǎn)場動畫
頁面間轉(zhuǎn)場動畫是在全局pageTransition()方法內(nèi)配置頁面入場和頁面退場時的自定義轉(zhuǎn)場動畫。圖3-5頁面間轉(zhuǎn)場動畫效果3.共享元素轉(zhuǎn)場動畫
共享元素轉(zhuǎn)場動畫通過設(shè)置組件的sharedTransition屬性將該組件標(biāo)記為共享元素,并設(shè)置對應(yīng)的共享元素轉(zhuǎn)場動畫。圖3-6共享元素轉(zhuǎn)場動畫效果3.1.4路徑動畫
路徑動畫通過motionPath屬性配置組件位移時的運(yùn)動路徑,可以顯著提升用戶體驗(與animateTo結(jié)合使用時才能生效,動畫時長、動畫曲線、動畫延遲播放時間沿用animateTo中的配置)。圖3-7路徑動畫效果3.2公共事件
鴻蒙系統(tǒng)通過公共事件服務(wù)(CommonEventService,CES)為應(yīng)用程序提供訂閱、發(fā)布、退訂公共事件的能力。每個應(yīng)用都可以按需訂閱公共事件,當(dāng)訂閱成功且公共事件發(fā)布時,系統(tǒng)會將其發(fā)送給對應(yīng)的應(yīng)用。這些公共事件可能來自系統(tǒng)、其他應(yīng)用或應(yīng)用自身。3.2.1公共事件分類
根據(jù)不同的分類標(biāo)準(zhǔn),公共事件有不同的分類。1.按系統(tǒng)角度分類
公共事件從系統(tǒng)角度可分為以下兩種。(1)系統(tǒng)公共事件:公共事件服務(wù)內(nèi)部定義的公共事件,只有系統(tǒng)應(yīng)用和系統(tǒng)服務(wù)才能發(fā)布,如HAP的安裝、更新、卸載等公共事件。鴻蒙系統(tǒng)目前支持的系統(tǒng)公共事件詳見官方枚舉列表。(2)自定義公共事件:應(yīng)用可以自定義一些公共事件來實現(xiàn)跨進(jìn)程的事件通信。2.按發(fā)送方式分類
公共事件按發(fā)送方式可分為以下3種。(1)無序公共事件:公共事件服務(wù)轉(zhuǎn)發(fā)公共事件時,不考慮訂閱者是否接收到,且訂閱者接收到公共事件的順序與其訂閱順序無關(guān)。(2)有序公共事件:公共事件服務(wù)轉(zhuǎn)發(fā)公共事件時,優(yōu)先將公共事件發(fā)送給優(yōu)先級較高的訂閱者,等待其成功接收該公共事件之后再將公共事件發(fā)送給優(yōu)先級較低的訂閱者。如果有多個訂閱者具有相同的優(yōu)先級,則他們將隨機(jī)接收到公共事件。(3)粘性公共事件:能夠讓訂閱者收到在訂閱前已經(jīng)發(fā)送的公共事件就是粘性公共事件。普通的公共事件只能在訂閱后收到,而粘性公共事件的特殊性就是可以先發(fā)送后訂閱。粘性公共事件的發(fā)送者必須是系統(tǒng)應(yīng)用或系統(tǒng)服務(wù),且需要申請ohos.permission.COMMONEVENT_STICKY權(quán)限。3.2.2公共事件開發(fā)
公共事件的處理包括公共事件動態(tài)訂閱、公共事件動態(tài)取消及公共事件發(fā)布。
公共事件動態(tài)訂閱是指應(yīng)用在運(yùn)行狀態(tài)時對某個公共事件進(jìn)行訂閱,應(yīng)用運(yùn)行期間如果有訂閱的事件發(fā)布,那么訂閱了這個事件的應(yīng)用將會收到該事件及其傳遞的參數(shù)。例如,某應(yīng)用希望在其運(yùn)行期間收到電量過低的事件,并根據(jù)該事件降低其運(yùn)行功耗,那么該應(yīng)用便可動態(tài)訂閱電量過低事件,收到該事件后關(guān)閉一些非必要的任務(wù)來降低功耗。其具體操作步驟如下。(1)導(dǎo)入模塊。(2)創(chuàng)建訂閱者信息。(3)創(chuàng)建訂閱者并且保存返回的訂閱者對象。(4)創(chuàng)建訂閱回調(diào)函數(shù)(訂閱回調(diào)函數(shù)會在接收到事件時觸發(fā))。
公共事件動態(tài)取消是指動態(tài)訂閱者完成業(yè)務(wù)需要時主動取消訂閱,可以通過調(diào)用unsubscribe()方法取消訂閱公共事件。其具體操作步驟如下。(1)導(dǎo)入模塊。(2)創(chuàng)建訂閱者信息。(3)創(chuàng)建訂閱者并保存返回的訂閱者對象。(4)調(diào)用CommonEvent中的unsubscribe()方法取消訂閱某公共事件。圖3-8公共事件3.3通知
鴻蒙系統(tǒng)通過通知增強(qiáng)服務(wù)(AdvancedNotificationService,ANS)對通知類型的消息進(jìn)行管理,支持多種通知類型,如基礎(chǔ)類型通知、進(jìn)度條類型通知。3.3.1通知簡介
應(yīng)用可以通過通知接口發(fā)送通知消息,終端用戶可以通過通知欄查看通知內(nèi)容,也可以點(diǎn)擊通知來打開應(yīng)用。1.通知常見的使用場景(1)顯示接收到的短消息、即時消息等。(2)顯示應(yīng)用的推送消息,如廣告、版本更新等。(3)顯示當(dāng)前正在進(jìn)行的事件,如下載等。
2.通知業(yè)務(wù)流程
通知業(yè)務(wù)流程由通知子系統(tǒng)、通知發(fā)送端、通知訂閱端組成,如圖3-9所示。通知產(chǎn)生于通知發(fā)送端,通過進(jìn)程間通信(Inter-ProcessCommunication,IPC)發(fā)送到通知子系統(tǒng),再由通知子系統(tǒng)分發(fā)給通知訂閱端。(1)通知子系統(tǒng)是用于管理和分發(fā)通知的核心模塊,旨在為開發(fā)者提供高效、統(tǒng)一的通知管理能力,同時為用戶提供一致的通知交互體驗。通知子系統(tǒng)通過標(biāo)準(zhǔn)化接口和分布式能力,支持多設(shè)備協(xié)同、跨設(shè)備通知同步及靈活的通知交互方式。(2)通知發(fā)送端可以是第三方應(yīng)用或系統(tǒng)應(yīng)用。開發(fā)者需要重點(diǎn)關(guān)注。(3)通知訂閱端只能為系統(tǒng)應(yīng)用,如通知中心。通知中心默認(rèn)訂閱手機(jī)上所有
應(yīng)用對當(dāng)前用戶的通知。開發(fā)者無須關(guān)注。圖3-9通知業(yè)務(wù)流程3.3.2通知發(fā)布
通知發(fā)布主要包括基礎(chǔ)類型通知發(fā)布和進(jìn)度條類型通知發(fā)布兩大類。
基礎(chǔ)類型通知發(fā)布主要用于發(fā)送短信息、提示信息、廣告推送信息等,支持普通文本類型、長文本類型、多行文本類型和圖片類型。
基礎(chǔ)類型通知發(fā)布的具體步驟如下。(1)導(dǎo)入模塊。(2)請求通知授權(quán)。(3)構(gòu)造NotificationRequest對象并發(fā)布通知。
進(jìn)度條類型通知發(fā)布主要應(yīng)用于文件下載、事務(wù)處理進(jìn)度顯示。鴻蒙系統(tǒng)提供了進(jìn)度條模板,可以設(shè)置模板名、模板數(shù)據(jù),通過通知子系統(tǒng)發(fā)送到通知欄顯示。
進(jìn)度條類型通知發(fā)布的具體步驟如下。(1)導(dǎo)入模塊。(2)請求通知授權(quán)。(3)查詢系統(tǒng)是否支持進(jìn)度條模板。(4)構(gòu)造進(jìn)度條模板對象并發(fā)布通知。圖3-10通知發(fā)布【項目實現(xiàn)】設(shè)計鬧鐘程序
接到任務(wù)后,黎工程師分析了項目要求,把此項目分成兩個任務(wù)來實現(xiàn):設(shè)計鬧鐘程序界面和編寫鬧鐘程序代碼。任務(wù)3-1設(shè)計鬧鐘程序界面1.任務(wù)分析
鬧鐘程序的界面需要展示指針表盤和數(shù)字時間,可以添加、修改和刪除鬧鐘,展示鬧鐘列表并可打開和關(guān)閉單個鬧鐘,其中指針表盤可以用動畫來實現(xiàn)。2.代碼實現(xiàn)(1)新建項目project3,在類文件ClockArea.ets中實現(xiàn)展示當(dāng)前時間的效果。(2)在類文件MainViewModel.ets中實現(xiàn)展示鬧鐘列表的效果。(3)在頁面文件Index.ets中整合展示當(dāng)前時間和展示鬧鐘列表的效果,并且添加按鈕以便點(diǎn)擊添加鬧鐘。(4)將程序入口類文件EntryAbility.ets所有內(nèi)容替換。圖3-11鬧鐘程序界面效果3.運(yùn)行效果
鬧鐘程序界面效果如圖3-11所示。任務(wù)3-2編寫鬧鐘程序代碼1.任務(wù)分析
鬧鐘操作界面分為新增鬧鐘界面和修改鬧鐘界面,在修改鬧鐘界面可刪除鬧鐘。另外,還需提供后臺代理提醒能力。2.代碼實現(xiàn)(1)在類文件DatePickArea.ets中設(shè)置鬧鐘時間,以便添加鬧鐘或者修改鬧鐘。(2)在類文件SettingItem.ets中設(shè)置鬧鐘重復(fù)時間、鬧鐘名稱、重復(fù)次數(shù)和鬧鈴時長。(3)在類文件ReminderService.ets中實現(xiàn)系統(tǒng)后臺代理提醒能力封裝(同時在module.json5中申請ohos.permission.PUBLISH_AGENT_REMINDER權(quán)限),支持新增、修改、刪除系統(tǒng)鬧鐘功能,在設(shè)置、刪除鬧鐘后同步更新到輕量級數(shù)據(jù)庫并刷新主界面。3.運(yùn)行效果
將上述文件保存后,引入相關(guān)的工具類文件,以及圖片、字符串、顏色、布爾值等文件,保存項目,編譯后在模擬器上運(yùn)行效果如圖3-12所示,鬧鐘程序成功實現(xiàn)。圖3-12鬧鐘程序運(yùn)行效果【小結(jié)及提高】
本項目設(shè)計了簡單的鬧鐘程序。通過學(xué)習(xí)本項目,讀者能夠掌握常用的動畫、常見的公共事件和通知,能夠熟練應(yīng)用動畫、公共事件和通知來解決實際問題。本項目實用性很強(qiáng),還可以進(jìn)一步拓展,如添加秒表、計時器等。
作為一名勞動者,特別是數(shù)字勞動者,應(yīng)注意以下職業(yè)道德規(guī)范:在處理用戶信息時,應(yīng)嚴(yán)格遵守相關(guān)法律法規(guī),確保用戶信息的安全和隱私權(quán)益;應(yīng)尊重他人的知識產(chǎn)權(quán),不得盜用、篡改或非法使用他人的作品、技術(shù)或創(chuàng)意;應(yīng)不斷提升自己的技能和知識水平,適應(yīng)行業(yè)的變化和要求;應(yīng)積極履行社會責(zé)任,關(guān)注環(huán)境保護(hù)、公益慈善等社會活動。【項目實訓(xùn)】1.實訓(xùn)要求
使用通知和基礎(chǔ)組件實現(xiàn)下載文件時發(fā)送通知的功能。2.步驟提示
發(fā)送通知可以這樣做:
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年安徽皖信人力資源管理有限公司公開招聘電力工程設(shè)計技術(shù)人員5人備考題庫(馬鞍山)及一套答案詳解
- 2025年焦作市中醫(yī)院下半年招聘備考題庫及答案詳解一套
- 2026年廈門市大同小學(xué)公開招聘非在編專技教師備考題庫及完整答案詳解1套
- 2026年廈門科方圓工貿(mào)有限公司招聘備考題庫完整參考答案詳解
- 2026年中國移動牟定分公司招聘11人備考題庫及答案詳解1套
- 2026年寧德市職業(yè)教育集團(tuán)公開招聘編外工作人員的備考題庫附答案詳解
- 2026年北京玻鋼院復(fù)合材料有限公司招聘備考題庫及答案詳解1套
- 2025年張家口市工會社會工作崗位公開招聘備考題庫及答案詳解參考
- 2026年山西供銷物流產(chǎn)業(yè)集團(tuán)面向社會招聘備考題庫完整參考答案詳解
- 2026年合肥一六八陶沖湖中學(xué)代課教師招聘備考題庫及參考答案詳解
- DL∕T 5106-2017 跨越電力線路架線施工規(guī)程
- 床-輪椅轉(zhuǎn)移操作質(zhì)量及評分標(biāo)準(zhǔn)
- DL-T976-2017帶電作業(yè)工具、裝置和設(shè)備預(yù)防性試驗規(guī)程
- DB32T3916-2020建筑地基基礎(chǔ)檢測規(guī)程
- 2024年青海海南州消防救援支隊消防文員招聘筆試參考題庫附帶答案詳解
- 2022版《義務(wù)教育教學(xué)新課程標(biāo)準(zhǔn)》解讀課件
- 期末水平綜合練習(xí)(試題)新思維小學(xué)英語一年級上冊
- 人教A版高中數(shù)學(xué)選擇性必修第二冊全冊各章節(jié)課時練習(xí)題含答案解析(第四章數(shù)列、第五章一元函數(shù)的導(dǎo)數(shù)及其應(yīng)用)
- 六年級下冊小升初全復(fù)習(xí)-第12講 工程問題-北師大 (含答案)
- 烹飪原料知識 水產(chǎn)品蝦蟹類
- 考勤抽查記錄表
評論
0/150
提交評論