32、鴻蒙Harmony Next開發:使用動畫-動畫概述

  • ???屬性動畫
  • 轉場動畫
  • 粒子動畫
  • 組件動畫
  • 動畫曲線
  • 動畫銜接
  • 動畫效果
  • 幀動畫(ohos.animator)

UI(用戶界面)中包含開發者與設備進行交互時所看到的各種組件(如時間、壁紙等)。屬性作為接口,用于控制組件的行為。例如,開發者可通過位置屬性調整組件在屏幕上的位置。

屬性值的變化,通常會引起UI的變化。動畫可在UI發生改變時,添加流暢的過渡效果。如果不加入動畫,屬性將在一瞬間完成變化。造成突兀感的同時,容易導致用戶失去視覺焦點。

動畫的目的包括:

  • 使界面的過渡自然流暢。
  • 增強用戶從界面獲得的反饋感和互動感。
  • 在內容加載等場景中,增加用戶的耐心,緩解等待帶來的不適感。
  • 引導用戶了解和操作設備。

在需要為UI變化添加過渡的場景,都可以使用動畫,如開機、應用啟動退出、下拉進入控制中心等。這些動畫可向用戶提供關于其操作的反饋,并有助于讓用戶始終關注界面。

ArkUI中提供多種動畫接口(屬性動畫、轉場動畫等),用于驅動屬性值按照設定的動畫參數,從起始值逐漸變化到終點值。盡管變化過程中參數值并非絕對的連續,而是具有一定的離散性。但由于人眼會產生視覺暫留,所以最終看到的就是一個“連續“的動畫。UI的一次改變稱為一個動畫幀,對應一次屏幕刷新。決定動畫流暢度的一個重要指標就是幀率FPS(Frame Per Second),即每秒的動畫幀數,幀率越高則動畫就會越流暢。ArkUI中,動畫參數包含了如動畫時長、動畫曲線等參數。動畫曲線作為主要因素,決定了屬性值變化的規律。以線性動畫曲線為例,在動畫時長內,屬性值將從起點值勻速變化到終點值。屬性過快或過慢的變化,都可能帶來不好的視覺感受,影響用戶體驗。因此動畫參數特別是動畫曲線,需要結合場景和曲線特點進行設計和調整。

動畫接口驅動屬性值按照動畫參數決定的規律,從原來的狀態連續過渡到新的狀態,進而在UI上產生的連續視覺效果。本文將按照如下結構,提供各種動畫的使用方法和注意事項,使開發者快速學習動畫。

  • 屬性動畫:最基礎的動畫類型,按照動畫參數逐幀驅動屬性的變化,產生一幀幀的動畫效果。除其中的自定義屬性動畫外,動畫過程的驅動由系統完成,應用側不感知動畫過程。
  • 轉場動畫:為組件在出現和消失時添加過渡動畫。為了保證動畫一致性,部分接口動畫曲線已內置,不支持開發者自定義。
  • 不推薦在應用內使用UIAbility組合所有的界面:UIAbility是一個任務,會在多任務界面獨立顯示一個卡片,UIAbility之間的跳轉是任務之間的跳轉。以應用內查看大圖的典型場景為例,不建議應用內調用圖庫的UIAbility去打開圖片查看大圖,會導致任務的跳轉,圖庫的UIAbility也會加入多任務界面中。正確的方式是應用內構建大圖組件,通過模態轉場去調起大圖組件,一個任務內的所有的界面都在一個UIAbility內閉環。
  • 導航轉場中,應使用Navigation組件實現轉場動畫。過去的page+router方式在實現導航轉場過程中,因為page和page之間相互獨立,其聯動動畫效果受限。不僅容易導致頁面之間的割裂,并且不支持一次開發多端部署。
  • 組件動畫:組件提供默認動效(如List的滑動動效)便于開發者使用,同時部分組件還支持定制化動效。
  • 動畫曲線:介紹傳統曲線和彈簧曲線的特點和使用方式。動畫曲線影響屬性值的運動規律,進而決定界面的動畫效果。
  • 動畫銜接:介紹如何實現動畫與動畫之間、手勢與動畫之間的自然過渡。
  • 高階動畫效果:介紹模糊、大陰影和顏色漸變等高階效果接口的使用方法。
  • 幀動畫:系統側提供在動畫過程中的插值結果,由開發者每幀修改屬性值產生動畫,相比于屬性動畫,有可實現暫停的優點,但性能不如屬性動畫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915442.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915442.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915442.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【STM32】485接口原理

485 通信實驗 這篇文章是對 RS485通信 的原理、硬件連接、接口芯片(SP3485)、總線結構等都有詳盡的說明。我們在此處進行清晰有條理的講解整理,便于學習和實驗操作。 在了解485接口通信原理之前,我們先復習一下串口:串…

亞馬遜二審攻防全攻略:預防、應對與長效合規之道

當店鋪收到二審通知,不少賣家會陷入焦慮與慌亂,只要掌握科學的預防策略與應對方法,不僅能降低二審風險,即便遭遇審核也能順利突圍。一、未雨綢繆:預防二審的四大核心策略夯實資料真實性根基資料的真實性與一致性是亞馬…

添加狀態信息

1首先在數據字典里加入可借閱和不可借閱狀態2導入數據字典export default {name: "Book",dicts: [book_borrow_status],//導入數據字典data() {return {formData: {name: null,author: null,num: null,price: null,typeId: null,status:null//新加狀態屬性},3設置狀態…

234、回文鏈表

題目:解答:對143稍作修改即可,判斷兩個指針指向的是否一直相等。終止條件為不等或者head2nullptrclass Solution { public:ListNode *rev(ListNode *head){ListNode *cur head;ListNode *pre nullptr;while(cur){ListNode * nxt cur->n…

第15次:商品搜索

實現用戶在頁面可自由搜索某個商品的功能。 第1步:準備搜索功能用到的庫 pip install whoosh pip install jieba pip install django-haystackwhoosh是搜索引擎,對英文支持較好,但對中文效果不佳。jieba為中文分詞庫,彌補whoosh…

《使用Qt Quick從零構建AI螺絲瑕疵檢測系統》——0. 博客系列大綱

目錄【《使用Qt Quick從零構建AI螺絲瑕疵檢測系統》系列簡介】第一部分:基礎入門與項目啟航第二部分:核心視覺算法開發第三部分:模擬完整工業流程第四部分:軟件打包與高級特性【《使用Qt Quick從零構建AI螺絲瑕疵檢測系統》系列簡…

【Python】Python中的循環語句

循環語句導讀一、基本概念1.1 循環語句的執行流程1.2 循環語句的分類二、while語句三、for語句四、break與continue五、死循環六、循環中的else語句七、range()函數結語導讀 大家好,很高興又和大家見面啦!!! 在上一篇內容中我們…

docker|Linux|以centos基礎鏡像為基礎制作nmap專用鏡像(鏡像瘦身計劃)

一、 最近由于某些場景下需要使用nmap,而nmap的rpm安裝包在源目標機器上使用有軟件沖突,因此,計劃使用docker部署nmap 具體計劃為 1、使用centos的基礎鏡像,在有網環境下,通過配置阿里云的yum倉庫,在cen…

基于單片機公交車報站系統/報站器

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽??????? 概述 公交車自動報站系統利用單片機作為核心控制器,結合GPS/北斗定位模塊、語音存…

Oracle 體系結構學習

1 認識Oracle后臺進程Oracle數據庫后臺進程是Oracle數據庫管理系統(DBMS)的核心組件,它們在后臺運行,負責數據庫的各種管理和維護任務。主要包括以下幾種:SMON (System Monitor)SMON負責數據庫的恢復操作,如…

構建一種安全的老式測試儀,用于具有限流燈泡,模擬儀表和可變輸出的交流設備

這個復古電路和電源測試儀的想法來自我需要一個簡單,安全,時尚的工具來測試和控制工作臺上的線路供電設備。商業解決方案要么太笨重,太昂貴,要么缺乏我喜歡的觸覺和模擬魅力。所以我決定自己造一個。這個測試儀的核心是一個老式的…

Redis5:Redis的Java客戶端——Jedis與SpringDataRedis詳解

目錄 1、Jedis客戶端 1.1使用過程 2、SpringDataRedis 2.1 SpingDataRedis介紹 2.2SpringDataRedis快速入門 2.3RedisTemplate的RedisSerializer 2.3.1RedisTemplate中JDK序列化局限性 2.3.2方式一:改變RedisTemplate的序列化方式 2.3.3RedisTemplate存儲一…

零基礎 “入坑” Java--- 十三、再談類和接口

文章目錄一、Object類1.獲取對象信息2.對象比較:equals方法二、再談接口1.比較相關接口2.Cloneable接口和深拷貝三、內部類1.匿名內部類2.實例內部類3.靜態內部類4.局部內部類在之前的學習中,我們已經了解了有關類以及接口的知識,在本章節中&…

Spring Boot 一個注解搞定「加密 + 解密 + 簽名 + 驗簽」

Spring Boot 一個注解搞定「加密 解密 簽名 驗簽」本文基于 Spring Boot 3.x,通過一個自定義注解 AOP,一行注解即可給任何 Controller 方法加上 請求解密 → 驗簽 → 響應加密 → 加簽 的完整鏈路,并可直接拷貝到生產環境使用。一、最終效…

《計算機網絡》實驗報告二 IP協議分析

目 錄 1、實驗目的 2、實驗環境 3、實驗內容 3.1 tcpdump 基本用法 3.2 wireshark基本用法 3.3 利用tcpdump抓包,wireshark分析包 4、實驗結果與分析 4.1 tcpdump命令的基本用法 4.2 wireshark的基本用法 4.3 利用tcpdump抓包,wireshark分析包…

k8s學習記錄(三):Pod基礎-Node選擇

一、前言 在上一篇文章中我們學習了Pod的一些基本的知識,今天我們將繼續學習Pod。 二、K8S如何選擇節點來運行Pod 我們知道在一個K8S集群中,會有多個工作節點(Worker Node),那么k8s會選擇那個node呢?接下…

3天功能開發→3小時:通義靈碼2.0+DEEPSEEK實測報告,單元測試生成準確率92%的秘密

活動鏈接:https://developer.aliyun.com/topic/lingma-aideveloper?spma2c6h.29979852.J_9593490300.2.49b8110eeymlF8 前言 隨著人工智能技術的迅猛發展,AI 賦能編程成為了必然趨勢。通義靈碼應運而生,它是阿里巴巴集團在人工智能與編程領…

【小沐學GIS】基于Rust繪制三維數字地球Earth(Rust、OpenGL、GIS)

🍺三維數字地球GIS系列相關文章如下🍺:1【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第一期2【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第二期3【小沐學GI…

ARM 學習筆記(三)

參考文獻:《ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition》《ARM Cortex-A (ARMv7-A) Series Programmer’s Guide》1、內存類型 ARMv7-A 處理器中,將 Memory 定義為幾種類型(Memory Type): Strong…

Flask 框架(一):核心特性與基礎配置

目錄 一、為什么選擇 Flask? 二、Flask 核心概念與初始化 2.1 程序實例初始化 2.2 運行配置:app.run () 參數詳解 2.3 應用配置:三種參數設置方式 1. 字典直接配置(簡單臨時場景) 2. 配置文件導入(生…