HarmonyOS ArkUI 属性动画完全指南:从基础概念到 animateTo 与 animation 实战
引言动画是应用开发中必不可少的部分一方面可以提升用户体验另一方面可以引导用户操作提高信息传达效率。UI 中包含开发者和用户交互时看到的各类组件属性值的变化会引起 UI 变化。如果不加动画属性变化会瞬间完成带来突兀感容易让用户失去视觉焦点动画可以在 UI 变化时添加流畅的过渡效果。本节课将系统讲解 ArkUI 属性动画的基础概念、接口使用与开发实践。核心内容动画概述与使用目的动画的作用UI 属性值变化若不加入动画会瞬间完成造成突兀感易让用户丢失视觉焦点动画可以为 UI 变化添加流畅的过渡效果。使用动画的四个核心目的使界面的过渡自然流畅。增强用户从界面获得的反馈感和互动感。在内容加载等场景中增加用户的耐心缓解等待带来的不适感。引导用户了解和操作设备。属性动画与可动画属性属性动画定义通过改变可动画属性引起 UI 产生连续视觉变化的动画效果按照动画参数逐帧驱动属性变化生成动画是 ArkUI 中最基础的动画类型。可动画属性分类属性可分为可动画属性和不可动画属性可动画属性又分为系统可动画属性和自定义可动画属性。常见系统可动画属性分类分类包含属性布局属性位置、大小、内边距、外边距、对齐方式、权重等仿射变换平移、旋转、缩放、锚点等背景背景颜色、背景模糊等内容文字大小、文字颜色图片对齐方式、模糊等前景前景颜色等外观透明度、圆角、边框、阴影等属性动画接口说明ArkUI 提供animateTo和animation两种属性动画接口都可以通过改变组件可动画属性触发界面连续变化生成属性动画。animateTo 接口语法animateTo(value: AnimateParam, event: () { // 动画的闭包函数闭包内变量改变产生的属性动画将遵循相同的动画参数 })animation 接口语法Image($r(app.media.image)) .rotate({ ... }) // 把 animation 接口加在要做属性动画的可动画属性后检测到其绑定的可动画属性发生变化就会自动添加属性动画 .animation(value: AnimateParam)animateTo 与 animation 接口对比对比维度animateToanimation生成动画方式通过变量控制可动画属性值在闭包内修改变量触发属性变化生成动画绑定在目标可动画属性后检测到属性变化自动添加动画作用范围全局显式动画可同时作用于多个组件组件级属性动画必须绑定单个组件语法结构通过闭包函数触发状态变化通过组件属性直接设置动画参数适用场景多组件同步动画或复杂动画逻辑单个组件简单属性动画如平移、旋转、缩放等动画参数 AnimateParamAnimateParam包含的核心参数参数名参数说明duration动画持续时间单位为毫秒tempo动画播放速度值越大播放越快值越小播放越慢默认值为 1.0curve动画曲线指定动画的速度变化规律delay动画延迟播放时间单位为毫秒默认不延迟iterations动画播放次数默认播放 1 次设置为-1表示无限次循环播放playMode动画播放模式默认播放完成后重头开始播放onFinish动画播放完成后的回调函数动画曲线 Curve动画曲线定义动画曲线是属性值关于时间的变化函数决定了属性变化过程中动画的运动轨迹。某一时刻曲线的斜率代表动画速度对应属性变化的快慢调整曲线可以实现动画的加速和减速效果。动画曲线和时长配合可以产生运动的韵律感。优秀动画曲线的特点连续光滑、符合用户意图、符合物理世界客观规律开发者需要根据场景选择合适的曲线。常见内置动画曲线曲线说明Smooth平滑曲线效果更符合用户认知能创造自然生动的动画效果EaseInOut表示动画以低速开始和低速结束Linear表示动画从头到尾速度保持一致开发案例实现思路案例需求实现两个动画效果点击按钮图片展开、按钮缩小再次点击按钮图片收回、按钮放大展开收合动画。点击单个图片实现图片翻转动画。展开收合动画实现思路定义状态变量控制图片的旋转角度、平移位置和缩放属性展开状态图片旋转 360 度沿 X/Y 轴平移到对应位置按钮缩放为原大小的 0.7 倍。收起状态图片旋转角度为 0、平移距离为 0按钮缩放恢复为原大小。使用animateTo通过闭包修改状态变量触发多组件同步动画。State isExpanded: boolean false; animateTo({ duration: 2000, curve: Curve.Smooth }, () { this.isExpanded !this.isExpanded; }) Image($r(app.media.image)) .rotate({ angle: this.isExpanded ? 360 : 0 }) .translate({ x: this.isExpanded ? 100 : 0, y: this.isExpanded ? 100 : 0 }) .scale({ x: this.isExpanded ? 0.7 : 1, y: this.isExpanded ? 0.7 : 1 })图片翻转动画实现思路为每个图片绑定状态变量控制旋转角度点击图片时修改变量通过animation接口绑定属性生成单个组件的翻转动画。State flipAngle: number 0; Image($r(app.media.image)) .rotate({ angle: this.flipAngle }) .animation({ duration: 1000, curve: Curve.EaseInOut }) .onClick(() { this.flipAngle this.flipAngle 0 ? 180 : 0; })总结本节课系统讲解了 ArkUI 属性动画的核心知识动画基础概念为 UI 属性变化添加流畅过渡效果避免突兀感。使用动画的四个核心目的为过渡自然流畅、增强反馈感、缓解等待不适感、引导用户操作。属性动画与可动画属性通过改变可动画属性逐帧驱动 UI 产生连续视觉变化。系统可动画属性涵盖布局属性、仿射变换、背景、内容、前景、外观六大类。两种属性动画接口animateTo全局显式动画通过闭包修改状态变量触发多组件同步动画适合复杂动画逻辑。animation组件级属性动画绑定单个组件属性检测到变化自动添加动画适合简单平移、旋转、缩放等效果。动画参数 AnimateParam包含duration时长、tempo速度、curve曲线、delay延迟、iterations次数、playMode模式、onFinish完成回调等配置项。动画曲线 Curve属性值关于时间的变化函数决定运动轨迹与速度变化。常见内置曲线包括Smooth平滑、EaseInOut头尾低速、Linear匀速。

相关新闻

HarmonyOS 状态管理 V2 完全指南:从 @Local 到 @ObservedV2

HarmonyOS 状态管理 V2 完全指南:从 @Local 到 @ObservedV2

引言数据是声明式 UI 开发的核心,一切 UI 的变化都是由数据驱动的。其中,会随着用户交互、时间推移或外部事件而动态变化,且会影响界面效果的数据,我们称之为状态。对这些状态进行统一的定义、追踪、更新和共享,这一系…

2026/8/9 18:24:21 阅读更多 →
快速掌握C#语言基础知识点(14.方法)

快速掌握C#语言基础知识点(14.方法)

关注我的动态 namespace _14.方法 {internal class Program{static void Main(string[] args){Common.Print("类方法Print: 你好!");//类方法Common common new Common();common.EmptyMethod();//无参无返回值common.Param2Method(1,"abc");co…

2026/8/9 18:24:21 阅读更多 →
如何快速集成sentry-elixir?5分钟上手教程

如何快速集成sentry-elixir?5分钟上手教程

如何快速集成sentry-elixir?5分钟上手教程 【免费下载链接】sentry-elixir The official Elixir SDK for Sentry (sentry.io) 项目地址: https://gitcode.com/gh_mirrors/se/sentry-elixir sentry-elixir是Sentry官方提供的Elixir SDK,能够帮助开…

2026/8/9 18:23:21 阅读更多 →

最新新闻

上海交通大学LaTeX幻灯片模板终极指南:告别排版烦恼,5分钟创建专业演示

上海交通大学LaTeX幻灯片模板终极指南:告别排版烦恼,5分钟创建专业演示

上海交通大学LaTeX幻灯片模板终极指南:告别排版烦恼,5分钟创建专业演示 【免费下载链接】SJTUBeamermin 上海交通大学 LaTeX Beamer 幻灯片模板 - VI 最小工作集 项目地址: https://gitcode.com/gh_mirrors/sj/SJTUBeamermin 还在为学术演示文稿的…

2026/8/10 0:18:11 阅读更多 →
GridPlayer终极指南:如何实现多视频同步播放的专业解决方案

GridPlayer终极指南:如何实现多视频同步播放的专业解决方案

GridPlayer终极指南:如何实现多视频同步播放的专业解决方案 【免费下载链接】gridplayer Play videos side-by-side 项目地址: https://gitcode.com/gh_mirrors/gr/gridplayer 你是否曾经需要在同一个屏幕上同时观看多个视频,但被繁琐的窗口切换搞…

2026/8/10 0:18:11 阅读更多 →
大品牌口红小样货源的水到底有多深?源头工厂把渠道商不敢讲的工艺差与验货底牌一次说透

大品牌口红小样货源的水到底有多深?源头工厂把渠道商不敢讲的工艺差与验货底牌一次说透

拿着高端彩妆膏体小规格定制的礼盒图片找上门来的渠道商,十个里有八个开口就问“能不能做到价格对标”。高端彩妆膏体小规格定制这个品类,本质是品牌方非销售型体验装,无标准化量产通路;市面上所谓“工艺架构相似”的货&#xff0…

2026/8/10 0:17:10 阅读更多 →
Spring Boot 与源码级原理拆解:接口演进怎样减少返工

Spring Boot 与源码级原理拆解:接口演进怎样减少返工

Spring Boot 与源码级原理拆解:接口演进怎样减少返工 范围说明: 本文是接口设计演练;异常语义、字段兼容和校验策略须以实际调用方验证。 业务背景与接口重构痛点 在企业级 Spring Boot 应用的开发与演进过程中,API 接口往往是业…

2026/8/10 0:16:10 阅读更多 →
华为MetaERP Oracle Fusion Cloud Procurement 后台程序完整获取路径 + 全套可落地示例前置基础定义Fusion 采购不存在 EBS 那种本地 PL/SQL 存

华为MetaERP Oracle Fusion Cloud Procurement 后台程序完整获取路径 + 全套可落地示例前置基础定义Fusion 采购不存在 EBS 那种本地 PL/SQL 存

Oracle Fusion Cloud Procurement 后台程序完整获取路径 全套可落地示例 前置基础定义 Fusion 采购不存在 EBS 那种本地 PL/SQL 存储过程、Form 程序、直连数据库并发程序; Fusion 体系下后台程序分为 5 大类,也是租户唯一合法获取、调试、二次开发的…

2026/8/10 0:16:10 阅读更多 →
华为MetaERP Oracle Fusion Cloud Procurement 获取后台表、后台程序全路径实操指南前置核心红线(必须先明确)客户侧无权限直连底层 Oracle 数据库、无法直接

华为MetaERP Oracle Fusion Cloud Procurement 获取后台表、后台程序全路径实操指南前置核心红线(必须先明确)客户侧无权限直连底层 Oracle 数据库、无法直接

Oracle Fusion Cloud Procurement 获取后台表、后台程序全路径实操指南 前置核心红线(必须先明确) 客户侧无权限直连底层 Oracle 数据库、无法直接 SELECT 物理表 Fusion 是 Oracle 托管 SaaS 云,底层库由 Oracle 运维,租户无 S…

2026/8/10 0:16:10 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →