当前位置: 首页 > news >正文

鸿蒙 HarmonyOs 动画效果 快速入门

一、理论

1.1 animation属性

名称参数类型必填描述
durationnumber设置动画时长,默认值:1000,单位:毫秒
temponumber动画播放速度。数值越大,速度越快,默认为1
curvestring | Curve

设置动画曲线。

默认值:Curve.EaseInOut,平滑开始和结束

delaynumber设置动画延迟执行的时长。默认值为0,毫秒
iterationsnumber

设置播放次数。

默认值:1,取值范围:[-1, +∞]

设置为 -1 表示无限次播放。

playModePlayMode设置动画播放模式,默认播放完成后重头开始播放。默认值:PlayMode.Normal
onFinish()=>void状态回调,动画播放完成时触发

1.2 组件转场效果

参数名参数类型必填描述
typeTransitionType类型,默认组件爱你新增和删除,默认为ALL
opacitynumber不透明度,为插入时起点和删除时终点的值。默认值为1,取值范围为[0,1]
translate

{

        x?:number | string,

        y?:number | string,

        z?:number | string

}

平移效果,为插入时起点和删除时终点的值。

-x:横向的平移距离。

-y:纵向的平移距离。

-z:竖向的平移距离。

scale

{

        x?:number,

        y?:number,

        z?:number,

        centerX?:number | string,

        centerY?:number | string

}

缩放效果,为插入时起点和删除时终点的值。

-x:横向的缩放倍数

-y:纵向的缩放倍数

-z:为当前的二维显示,该参数无效

-centerX:centerY指缩放中心点,centerX和centerY默认值是"50%"

-中心点为0时,默认是组件的左上角

rotate

{

        x?:number,

        y?:number,

        z?:number,

        angle:number | string,

        centerX?:number | string,

        centerY?:number | string

}

旋转效果:

angle是旋转角度

二、实操

2.1 示例:旋转图片

示例代码:

@Entry
@Component
struct Index {@State angle:number = 0build(){Column(){//显示图片Image($r('app.media.one')).width(120).rotate({angle:this.angle,centerX:'50%',centerY:'50%'}).animation({duration:1000,onFinish:()=>{console.log('结束时:'+this.angle)}})Button('动画开始').onClick(()=>{this.angle += 360})}.width('100%').height('100%')}
}

2.2 示例:平移、旋转、缩放

其中scale的值为缩放比例,所以1为初始值,2则表示原有的1倍

其中rotate的值为1则表示以该轴旋转,0则不以该轴旋转

示例效果:

示例代码:

@Entry
@Component
struct Index {@State angle:number = 0@State rotateX:number = 0@State rotateY:number = 0@State rotateZ:number = 0@State translateX:number = 0@State translateY:number = 0@State scaleX:number =  1@State scaleY:number =  1build(){Column(){//显示图片Image($r('app.media.one')).width(120).rotate({angle:this.angle,x:this.rotateX,y:this.rotateY,z:this.rotateZ,centerX:'50%',centerY: '50%',}).animation({duration:1000,onFinish:()=>{console.log('结束时:'+this.angle)}}).translate({x:this.translateX,y:this.translateY}).scale({x:this.scaleX,y:this.scaleY,centerX:'50%',centerY: '50%',})Blank()Row(){Column(){Image($r('app.media.ic_public_arrow_up_0')).width(40).backgroundColor(Color.White).borderRadius(20).onClick(()=>{this.translateY -= 50})Row(){Image($r('app.media.ic_public_arrow_left')).width(40).backgroundColor(Color.White).borderRadius(20).onClick(()=>{this.translateX -= 50})Image($r('app.media.ic_public_arrow_right')).width(40).backgroundColor(Color.White).borderRadius(20).onClick(()=>{this.translateX += 50})}.width(130).justifyContent(FlexAlign.SpaceBetween)Image($r('app.media.ic_public_arrow_down_0')).width(40).backgroundColor(Color.White).borderRadius(20).onClick(()=>{this.translateY += 50})}.width(200)Column({space:20}){Button('旋转一圈动画开始').onClick(()=>{this.rotateZ = 1this.angle += 360})Button('放大一倍').onClick(()=>{this.scaleX *= 2this.scaleY *= 2})Button('缩小一倍').onClick(()=>{this.scaleX /= 2this.scaleY /= 2})}.padding(10)}.width('100%').backgroundColor(Color.Gray)}.width('100%').height('100%')}
}

2.3 示例:简单摇骰子效果

示例效果:

示例代码:

@Entry
@Component
struct Index {@State dice:Resource[] = [$r('app.media.one'),$r('app.media.two'),$r('app.media.three'),$r('app.media.four'),$r('app.media.five'),$r('app.media.six')]@State currentDice:Resource = this.dice[0]@State angle:number = 0@State rotateX:number = 0@State rotateY:number = 1@State rotateZ:number = 0@State opacityNumber:number = 1@State runState:boolean = falsebuild(){Column(){//显示图片Image(this.currentDice).width(120).rotate({angle:this.angle,x:this.rotateX,y:this.rotateY,z:this.rotateZ,centerX:'50%',centerY: '50%',}).animation({duration:1000,curve:Curve.EaseInOut,onFinish:()=>{this.opacityNumber = 1console.log('结束时:'+this.angle)},}).opacity(this.opacityNumber)Button('摇骰子').width(200).onClick(()=>{this.opacityNumber = 0.8this.angle += 360setTimeout(()=>{this.currentDice = this.dice[Math.floor(Math.random() * this.dice.length)];},1000)})}.width('100%').height('100%')}
}

相关文章:

鸿蒙 HarmonyOs 动画效果 快速入门

一、理论 1.1 animation属性 名称参数类型必填描述durationnumber否设置动画时长,默认值:1000,单位:毫秒temponumber否动画播放速度。数值越大,速度越快,默认为1curvestring | Curve否 设置动画曲线。 默…...

PyTorch学习之 torch.squeeze 函数

PyTorch学习之 torch.squeeze 函数 一、功能 torch.squeeze 的主要作用是从给定的张量 input 中移除所有尺寸为1的维度。 二、基本语法 torch.squeeze(input, dimNone)三、参数说明 input (Tensor): 输入的张量。dim (int, 可选): 指定要移除的尺寸为1的维度 如果未指定&am…...

达梦数据库系列—17. 主备集群搭建-实时主备

目录 配置实时主备 1、环境说明 2、数据准备 脱机备份、脱机还原方式 联机备份、脱机还原方式 3、配置主库 3.1 配置 dm.ini 3.2 配置 dmmal.ini 3.3 配置 dmarch.ini 3.4 配置 dmwatcher.ini 3.5 启动主库为mount 3.6 设置 OGUID 3.7 修改数据库模式 4、配置备库…...

【24医学顶刊】GANDALF:主动学习 + 图注意力变换器 + 变分自编码器,改善多标签图像分类

GANDALF:主动学习 图注意力变换器 变分自编码器,改善多标签图像分类 提出背景子解法1:多标签信息样本的选择子解法2:生成信息丰富且非冗余的合成样本 例子:胸部X射线图像分析传统方法的操作和局限GaNDLF方法的优势 工…...

Linux 权限介绍

文章目录 Linux 权限介绍权限类型权限的数字表示查看文件信息修改权限相关指令 Linux 权限介绍 在 Linux 系统中,权限管理是非常重要的一部分,它确保了系统的安全性和文件的合理访问。 权限类型 [ r ]代表可读(read)&#xff1…...

kernel header解析

一、kernel header定义: aarch64 kernel header u32 code0; /* Executable code */ u32 code1; /* Executable code */ u64 text_offset; /* Image load offset, little endian */ u64 image_size; /* Effective Image size, little…...

MQ运行时遇到的问题

遇到的问题描述:我在绑定通道的时候发现了通道绑定失败, 原因: 在代码中我第一次创建交换机的时候类型的默认没有修改成topic类型的,导致后面的代码再去进行注册的时候并没有实现那个类型 解决: 更改代码&#xff0…...

EDI是什么?与ERP有何关系

EDI的发展过程 电子数据交换(Electronic Data Interchange,EDI)是一种通过电子方式传输商业文件的技术。EDI的历史可以追溯到20世纪60年代,当时企业开始使用计算机进行数据处理。最早的EDI系统是为解决大型企业间的信息交换问题而…...

【MotionCap】在wsl2 ubuntu20.04构建及运行

https://github.com/MVIG-SJTU/AlphaPose/issues/1157conda create -n alphapose python=3.7 -y conda activate alphapose conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1...

iptables 防火墙(二)

iptables 防火墙(二) 一、SNAT 策略及应用SNAT 策略概述SNAT 策略的应用 二、DNAT 策略及应用DNAT 策略概述 三、规则的导出、导入规则的备份及还原iptables-save 命令iptables-restore 命令 使用 iptables 服务 四、使用防火墙脚本防火墙脚本的构成防火…...

【机器学习】在【PyCharm中的学习】:从【基础到进阶的全面指南】

目录 第一步:基础准备 1.1 Python基础 1.1.1 学习Python的基本语法 1.1.2 控制流 1.1.3 函数和模块 1.2 安装PyCharm 1.2.1 下载并安装 第二步:数据科学基础 2.1 安装必备库 2.1.1 使用pip安装 2.2 数据操作 2.2.1 Pandas基础操作 2.2.2 Nu…...

idea Error running ‘Application‘

1、Error running ‘Application’ Error running ApplicationError running Application. Command line is too long.Shorten the command line via JAR manifest or via a classpath file and rerun.找到 .idea/libraies/workspace.xml 中的 PropertiesComponent 属性&#…...

数据结构和顺序表

什么是数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据元素的三要素 数据结构包括三方面的内容:逻辑结构、存储结构、数据的运算。 逻辑结构 逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。数据的逻辑结…...

【一步一步了解Java系列】:对这个系列的总结以及对缺漏内部类知识的补充

看到这句话的时候证明:此刻你我都在努力 加油陌生人 br />个人主页:Gu Gu Study专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xf…...

TCP和UDP

目录 TCPUDPTCP 传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的,可靠的,基于字节流的传输层通信协议。在该层,另一个重要传输协议是用户数据包协议(UDP)。 数据在TCP层称为流Stream,数组分组称为分段Segment。相对的在IP层,数据称为Datagram, 数…...

【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行

isarsoft / yolov4-triton-tensorrt运行发现插件未注册? 【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4 对main 进行了重新构建 【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号【ai】tx2…...

类与对象的创建

1.类是一种抽象的数据类型,他是对某一类事务整体描述/定义,但是并不能代表某一个具体的事物 eg:动物,植物,手机,电脑... Person类,Pet类,Car类,这些类都是用来描述、定义…...

基于单片机的 LED 照明灯智能调光系统设计

摘  要: 社会经济的不断发展,推动了智能化生活的进程,智能调光技术开始广泛应用在生活中,人们也逐渐提高了灯光亮灯率等的要求。基于此,笔者主要设计了基于单片机的 LED 照明灯智能调光系统,希望能够为相关…...

客户满意度调查方法有哪些

用户满意度调查作为改进用户体验工作中重要的一项活动,可以帮助企业深入了解客户对产品服务各方面评价。有许多企业想开展客户满意度调查,但是在调查方式上不清楚该用那种方式?另外还要考虑预算,民安智库(公众满意度调…...

为什么企业应用开发,c++干不过java?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! C/C这种东西,根本…...

ARM架构计数器与定时器虚拟化技术详解

1. ARM架构中的计数器-定时器虚拟化技术概述在现代虚拟化环境中,精确的时间管理是确保虚拟机性能和功能完整性的关键要素。ARMv8/v9架构通过一系列精心设计的系统寄存器和硬件特性,为hypervisor提供了强大的计数器与定时器虚拟化能力。这项技术允许每个虚…...

原子化《清单革命》的庖丁解牛

它的本质是:承认人类大脑在 高负荷、高压力、高复杂度 环境下的 不可靠性 (Unreliability),通过将 关键检查点 (Critical Checkpoints) 和 标准操作程序 (SOP) 外化为 静态数据结构 (Static Data Structure/List),来弥补 工作记忆 (Working M…...

终极免费音频编辑解决方案:告别昂贵软件,用Audacity实现专业级音频处理

终极免费音频编辑解决方案:告别昂贵软件,用Audacity实现专业级音频处理 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 还在为音频编辑软件的高昂费用而烦恼?是否曾因复杂的专业…...

企业内网开发场景下,利用Taotoken实现大模型API的统一网关与审计

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内网开发场景下,利用Taotoken实现大模型API的统一网关与审计 在中大型企业的研发环境中,引入大模型能力…...

ADAU1701(含A2B)的开发详解五:SigmaStudio实战技巧与模块高效应用

1. SigmaStudio模块查找的终极技巧 第一次打开SigmaStudio时,面对左侧密密麻麻的模块列表,我完全懵了。就像走进一个巨大的图书馆却找不到分类标签,ADI把200多个算法模块分散在30多个分类里,光Volume Controls下面就有12种音量调节…...

手把手教你:用Edge/Chrome浏览器把Jupyter Notebook作业直接保存为PDF(含画布大小调整技巧)

手把手教你:用Edge/Chrome浏览器将Jupyter Notebook作业完美导出为PDF 深夜赶作业时,你是否遇到过这样的困境:精心编写的Jupyter Notebook包含复杂公式和可视化图表,却在导出PDF时遭遇格式错乱、中文显示为方框、图表被截断等问题…...

ARM TLBIP指令解析与应用实践

1. ARM TLBIP指令深度解析在ARMv8/v9架构中,TLB(Translation Lookaside Buffer)作为内存管理单元(MMU)的核心组件,负责缓存虚拟地址到物理地址的转换结果。当页表发生变更时,必须及时使TLB中对应的缓存条目失效,以确保内存访问的正…...

ElevenLabs老年语音情感衰减难题破解(附可复用的Prosody增强JSON Schema与实测MOS提升2.1分)

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs老年男性语音情感衰减现象的本质剖析 ElevenLabs 的老年男性语音模型(如 “Antoni” 或 “Josh”)在高语速、长句或情绪密集场景下,常出现语调扁平化、微停…...

揭秘高效磁盘空间管理:专业磁盘分析工具WinDirStat完全指南

揭秘高效磁盘空间管理:专业磁盘分析工具WinDirStat完全指南 【免费下载链接】windirstat WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/wi/windirstat 你是否曾为Window…...

双源判别器提升城市场景语义分割精度

篇名问题,背景方法其他基于双源判别器的域自适应城市场景语义分割(2023)1.跨域数据集外观分布不同导致域差异,导致对抗训练不稳定,分割精度不够理想。2.网络对小目标分割精度不理想双源判别器(判别器输入包含 2 个不同域 的特征信…...