HarmonyOS NEXT应用开发—Lottie

本文介绍了如何在OpenHarmony平台上使用Lottie库解析和渲染AdobeAfterEffects导出的动画,包括加载动画、交互功能和实现步骤,以及在实际项目中的使用示例和工程依赖。
摘要由CSDN通过智能技术生成

介绍

Lottie是一个适用于OpenHarmony的动画库,它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画,并在移动设备上进行本地渲染, 可以在各种屏幕尺寸和分辨率上呈现,并且支持动画的交互性,通过添加触摸事件或其他用户交互操作,使动画更加生动和具有响应性。

效果图预览

img

使用说明

1.进入页面,点击动画卡片,动画播放并且文本发生变化。

实现思路

  1. 添加Lottie模块,源码参考oh-package.json5
{
  "name": "lottieview",
  "version": "1.0.0",
  "description": "Please describe the basic information.",
  "main": "Index.ets",
  "author": "",
  "license": "Apache-2.0",
  "dependencies": {
    // Lottie模块
    "@ohos/lottie": "2.0.0",
  }
}
  1. 将Lottie的资源文件data.json文件放置到Entry目录下的common文件夹下(放置本模块中,使用相对路径无法读取)。数据参考politeChicky.json
  2. 进入页面,通过Canvas的onReady函数加载动画,点击播放动画,动画执行播放,文本刷新。源码参考LotieView.ets
  // 加载动画
  loadAnimation(autoplay: boolean) {
    if (this.animateItem !== null) {
      this.animateItem.destroy();
      this.animateItem = null;
    }
    // TODO:知识点:lottie.loadAnimation将json数据生成动画
    this.animateItem = lottie.loadAnimation({
      container: this.politeChickyController,
      renderer: 'canvas',
      loop: false,
      autoplay: autoplay,
      name: this.politeChicky,
      path: this.politeChickyPath,
      initialSegment: [FRAME_START, FRAME_END]
    })
  }

  build() {
    Stack({ alignContent: Alignment.TopStart }) {
      // 动画
      Canvas(this.politeChickyController)
        .width($r('app.integer.canvas_size'))
        .height($r('app.integer.canvas_size'))
        .backgroundColor($r('app.color.ohos_id_color_palette2'))
        .borderRadius($r('app.string.ohos_id_corner_radius_default_m'))
        .onReady(() => {
          this.loadAnimation(false);
        })
        .onClick(() => {
          this.loadAnimation(true);
          this.times++;
        })
      // 响应动画的文本
      Text(this.textArray[this.times % TEXT_DATA_LENGTH])
        .fontSize($r('app.string.ohos_id_text_size_headline'))
        .margin($r('app.string.ohos_id_elements_margin_vertical_m'))
        .fontColor(Color.White)
    }.margin({ top: $r('app.string.ohos_id_elements_margin_vertical_l') })
  }
}

高性能知识点

不涉及。

工程结构&模块类型

lottieview                                         // har类型
|---view
|   |---LottieView.ets                             // 视图层-应用主页面

模块依赖

本实例依赖common模块来实现日志的打印、资源 的调用、动态路由模块来实现页面的动态加载以及Lottie模块,版本为2.0.0。

参考资料

Lottie

最后分享一份鸿蒙(HarmonyOS)开发学习指南需要的可以扫码免费领取!!!

《鸿蒙(HarmonyOS)开发学习指南》

第一章 快速入门

1、开发准备

2、构建第一个ArkTS应用(Stage模型)

3、构建第一个ArkTS应用(FA模型)

4、构建第一个JS应用(FA模型)

5、…

图片

第二章 开发基础知识

1、应用程序包基础知识

2、应用配置文件(Stage模型)

3、应用配置文件概述(FA模型)

4、…

图片

第三章 资源分类与访问

1、 资源分类与访问

2、 创建资源目录和资源文件

3、 资源访问

4、…

图片

第四章 学习ArkTs语言

1、初识ArkTS语言

2、基本语法

3、状态管理

4、其他状态管理

5、渲染控制

6、…

图片

第五章 UI开发

1.方舟开发框架(ArkUI)概述

2.基于ArkTS声明式开发范式

3.兼容JS的类Web开发范式

4…

图片

第六章 Web开发

1.Web组件概述

2.使用Web组件加载页面

3.设置基本属性和事件

4.在应用中使用前端页面JavaScript

5.ArkTS语言基础类库概述

6.并发

7…

图片

11.网络与连接

12.电话服务

13.数据管理

14.文件管理

15.后台任务管理

16.设备管理

17…

图片

第七章 应用模型

1.应用模型概述

2.Stage模型开发指导

3.FA模型开发指导

4…

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Framework7是一个开源的、为移动应用开发而打造的HTML框架。它提供了丰富的UI组件和交互效果,能够帮助开发者快速构建具有良好用户体验的移动应用。 而Lottie是由Airbnb开发的一个跨平台动画库。它允许开发者使用JSON格式的动画文件,在移动应用中展示高质量的矢量动画效果。由于矢量图形的可伸缩性和灵活性,Lottie能够在不同尺寸和屏幕密度的设备上精确呈现动画,同时支持交互和动态修改。 Framework7和Lottie可以很好地结合在一起,为移动应用开发带来更加丰富的交互和视觉效果。通过引入Lottie库,开发者可以将矢量动画无缝集成到Framework7的UI组件中,为应用增添生动和有趣的效果。 例如,开发者可以在Framework7中使用Lottie来创建一个有趣的加载动画,用于在网络请求期间显示给用户,以提高用户体验。开发者可以使用Lottie Studio等工具创建和编辑动画,然后将生成的JSON文件导入到Framework7项目中,通过简单的代码调用即可播放动画。 除了加载动画之外,Framework7和Lottie的结合还可以用于创建其他类型的交互动画。例如,在用户点击按钮时,可以使用Lottie呈现一个逐渐变大的放大效果;在滑动屏幕时,可以使用Lottie实现一个缩放和平移的过渡效果。这些动画的无缝集成可以让移动应用变得更具吸引力,提升用户对应用的好感度和使用体验。 总之,通过结合Framework7和Lottie,开发者可以带来更多的交互和动画效果,提升移动应用的质量和用户体验。这两个工具的组合将为开发者提供更多创造力和灵活性,使他们能够构建出更加具有吸引力和有趣度的移动应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值