鸿蒙笔记--动画

server/2024/10/21 21:30:32/

        这一节主要了解一下鸿蒙的动画,动画的引入主要是为了提升用户体验、增加用户反馈和互动感、引导用户操作以及缓解等待带来的不适感。

  属性动画:

Index.ets

@Entry
@Component
struct Index {@StatewidthSize: number = 100@StateheightSize: number = 40build() {Column({ space: 15 }) {Button('属性动画').width(this.widthSize).height(this.heightSize).onClick(() => {this.widthSize = 210this.heightSize = 90}).animation({duration: 1000,delay: 1000,       curve: 'cubic-bezier(.57,.58,.75,1.33)',//curve: Curve.Linear         iterations: -1, playMode: PlayMode.Alternate})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}

显示动画

Index.ets

@Entry
@Component
struct Index {@StateheightSize: number = 40build() {Column() {Text('一级菜单').height(40).onClick(() => {animateTo({duration: 500}, () => {this.heightSize = this.heightSize === 40 ? 0 : 40})})Column() {Text('一级菜单').height(this.heightSize)Text('一级菜单').height(this.heightSize)}}.backgroundColor('#069')}
}

这个和Android中的补间动画优点类似。

页面间元素共享动画

       页面间元素共享动画是指在两个页面之间进行切换时,通过特定的转场动效实现某些元素的平滑过渡。这种动画通常用于提升用户体验,使页面之间的跳转更加流畅和有趣。具体来说,当路由进行切换时,可以通过设置组件的sharedTransition属性将该元素标记为共享元素并设置对应的共享元素转场动效。这些属性包括id、duration、curve、delay、motionPath、zIndex和type等.它适用于多种场景,如图片的放大缩小、列表项的动态插入和移除等。例如,如果同一个元素在不同页面间的大小有明显差异,可以使用共享元素转场动画衔接,达到放大缩小视图的效果。在开发过程中,可以通过编写相应的代码来配置和实现这些动效。例如,通过设置sharedTransition的id和其他参数,可以使两个页面间的相同元素实现平滑过渡。

Index.ets

import router from '@ohos.router'
@Entry
@Component
struct Index {build() {Column() {Column({ space: 10 }){Image($rawfile('ai.png')).width('100%').aspectRatio(1).sharedTransition('ai', { duration: 500 })Text('ai美女 这是一张由AI产生的美女...').sharedTransition('text', { duration: 500 })}.width('50%').onClick(() => {router.pushUrl({url: 'pages/DetailPage'})})}.height('100%').width('100%').alignItems(HorizontalAlign.Start)}
}

DetailPage.ets

@Entry
@Component
struct DetailPage {build() {Column() {Column({ space: 10 }){Image($rawfile('ai.png')).width('100%').aspectRatio(1).sharedTransition('ai', { duration: 500 })Text('ai美女 这是一张由AI产生的美女...').fontSize(24).sharedTransition('text', { duration: 500 })}.width('100%')}.height('100%').width('100%')}
}


http://www.ppmy.cn/server/65241.html

相关文章

JVM--双亲委派模型

1.双亲委派模型 定义: 站在Java虚拟机的角度来看,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C语言实现,是虚拟机自身的一部分;另外一种…

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器,它解决了 State 对状态变量更改的检测混乱的问题: State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

JDK新特性(Lambda表达式,Stream流)

Lambda表达式: Lambda 表达式背后的思想是函数式编程(Functional Programming)思想。在传统的面向对象编程中,程序主要由对象和对象之间的交互(方法调用)构成;而在函数式编程中,重点…

河南萌新联赛2024第(一)场:河南农业大学 A D F G H I K

A 造数 题目描述: 给定一个整数 𝑛 ,你可以进行以下三种操作 操作1: 1 操作2; 2 操作3: 2 问最少需要多少次操作可以将 0 转为为 𝑛 。 解题思路 操作1,2,3。操作 3 …

C++入门基础

目录 一、命名空间 1.命名空间的作用 2.命名空间的定义 3.命名空间的使用 二、输入输出 1.输出运算符<< 2.输入运算符>> 三、缺省参数 四、函数重载 五、引用 1.引用简介 2.引用的注意事项 3.const引用 4.引用与指针的关系 六、inline 一、命名空间 …

自动化测试、压力测试、持续集成

因为项目的原因&#xff0c;前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家&#xff0c;希望对需要的人有所帮助。 SoapUI 是什么&#xff1f; SoapUI 是一个开源测试工具&#xff0c;通过 soap/http 来检查、调用、实现 Web Service 的…

linux集群架构--web服务器--nginx检查模块/算法/rewrite知识补充

web集群-负载均衡 轮询算法 &#xff08;1&#xff09;概述 决定负载均衡如何把请求分发给后端节点&#xff0c;这种分发的方式就是轮询算法 &#xff08;2&#xff09;轮询算法 面试题&#xff1a;说说常见nginx轮询算法 rr,wrr,ip_hash,lc算法&#xff08;最小连接数&…

【HarmonyOS开发】弹窗交互(promptAction )

实现效果 点击按钮实现不同方式的弹窗showToast showDialog showActionMenu 代码实现 1.引入’ohos.promptAction’ import promptAction from ohos.promptAction;2.通过promptAction 实现系统既定的弹窗 import promptAction from ohos.promptAction;Entry Component st…