动画是UI界面的重要元素之一,精心设计的动画能使UI界面更直观,有助于改进应用程序的外观并改善用户体验。
ArkUI开发框架为开发者提供了丰富的动画能力,如属性动画、转场动画及自定义动画等。这些动画能力帮助开发者美化了UI界面,但不适用于绘制某些比较复杂的动画,例如,属性动画主要针对动画的通用属性进行动态变化,内容动效不够丰富,且变更时需要修改或重写代码;Gif动态图放大后锯齿明显,精度越高占用存储空间越大,直接影响安装包的大小;svg动画DOM节点多开销大,缺乏与用户的交互。因此,我们引入了比较成熟的Lottie组件,提升了ArkUI开发框架的动画能力。
1. 什么是Lottie?

2. Lottie绘制流程

3. Lottie优点
1. 创建项目

2. 添加依赖


3. 导出动画资源并保存

4. 编写逻辑代码
import lottie from '@ohos/lottie-ohos-ets'
@Entry
@Component
struct Index {
private controller: RenderingContext = new RenderingContext();
// 动画别名
private animateName: string = "animation";
// 动画资源相对路径
private animatePath: string = "common/lottie/animation.json";
private onPageHide(): void {
// 随页面隐藏销毁动画
lottie.destroy();
}
build() {
Column() {
// 声明Animator与Canvas组件
Animator('__lottie_ets')
Canvas(this.controller)
.width('30%')
.height('20%')
.backgroundColor('#ff0000')
.onAppear(() => {
// 随Canvas布局自动加载动画
let anim = lottie.loadAnimation({
container: this.controller,
renderer: 'canvas',
loop: true,
autoplay: true,
name: this.animateName,
path: this.animatePath
})
})
Button('togglePause')
.onClick(() => {
// 声明button按键与设置点击事件,通过点击控制动画暂停与播放的切换
lottie.togglePause(this.animateName);
})
}
.width('100%')
.height('100%')
}
}效果如下所示:

以上就是ArkUI开发框架中Lottie组件的使用,希望广大开发者能利用这个强大的开源组件开发出更多精美的应用。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047792/viewspace-3144006/ ,如需转载,请注明出处,否则将追究法律责任。