news 2026/9/25 10:13:10

如何5分钟上手svga-cj:HarmonyOS仓颉语言SVGA动画播放器快速入门教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何5分钟上手svga-cj:HarmonyOS仓颉语言SVGA动画播放器快速入门教程

如何5分钟上手svga-cj:HarmonyOS仓颉语言SVGA动画播放器快速入门教程

【免费下载链接】svga-cjsvga格式动画展示库项目地址: https://gitcode.com/Cangjie-TPC/svga-cj

svga-cj是一款专为 HarmonyOS 打造的SVGA 动画播放器库,使用仓颉语言(Cangjie)开发,能够解析.svga格式动画并在移动端进行本地渲染,支持播放、暂停、快进、跳帧、倍速等完整播放控制,新手5分钟即可将动效集成到自己的 App 中 🚀

一、svga-cj 是什么?能做什么?

svga-cj 是一个轻量级 SVGA 动画展示库(当前 release 版本 v1.3.0),核心特性包括:

特性说明
📼 加载 SVGA 动画支持 rawfile 中的.svga资源,本地解析渲染
🎮 播放控制播放、暂停、停止、反向播放
⏩ 快进能力按帧或按百分比跳转(stepToFrame/stepToPercentage)
🔁 循环与倍速可设置循环次数setLoops与倍速setCurRate
✏️ 动态内容替换通过setImage/setText替换动画中的图片与文本

⚠️ 目前仅支持 2.0 版本的 svga 资源,暂不支持带音频的动画。

二、准备工作:环境要求快速核对

集成前先确认开发环境(详见 README.md 的约束说明):

  • ✅ DevEco Studio6.1.1 Release(6.1.1.280)+ Cangjie Plugin 6.1.1 Beta1
  • ✅ 仓颉编译器cjc v1.1.3
  • ✅ 配置CANGJIE_STDX_PATH环境变量(依赖三方库 stdx v1.1.3.1)
  • ✅ 自动拉取依赖:zlib4cj、protobuf4cj(构建脚本见 pre_protobuf_install.mjs)

获取项目源码:

git clone https://gitcode.com/Cangjie-TPC/svga-cj

三、最快配置方法:4步把svga模块接入你的项目

第 1 步:拷贝模块。将仓库中的 svga/ 目录整体拷贝到你的应用项目根目录,并在项目build-profile.json5的modules字段注册模块:

{ "name": "svga", "srcPath": "./svga" }

第 2 步:声明 npm 依赖。在entry/oh-package.json5的dependencies中添加:

"@cangjie-tpc/svga": "file:../svga"

第 3 步:配置仓颉包。在entry/src/main/cangjie/cjpm.toml中添加:

[dependencies.svga] path = "${cangjie_tpc_svga}"

第 4 步:导入即可使用。在业务代码中import svga.*与import svga.player.*,库的对外入口定义在 svga_player.cj。

四、SvgaPlayer 组件使用:一段代码跑起动效

参考示例工程入口 index.cj,核心只有几行:

var controller: SvgaController = SvgaController() public func build() { Column { SvgaPlayer(url: "angel.svga", abilitycontext: globalcontext.getOrThrow(), controller: controller) }.width(300).aspectRatio(1) }

SvgaPlayer组件接收url(rawfile 中的 svga 资源路径)、abilitycontext(UI 上下文)和controller(播放器控制器)三个参数,组件内部自动完成解析、画布自适应缩放与播放(渲染逻辑见 renderer.cj,解析器见 parser.cj)。

常用控制器 API 清单:

场景调用方法
加载并自动播放controller.load(source)
暂停 / 停止pauseAnimation()/stopAnimation(clears)
从第 N 帧 / 百分比跳转stepToFrame(frame)/stepToPercentage(pct)
播放范围startAnimationWithRange(range)
循环次数 / 倍速setLoops(3)/setCurRate(2.0)
完成与进度回调onFinished { }/onPercentage { }

循环、自动释放等默认参数通过SvgaPlayerProps构造SvgaController,完整接口文档请查阅 feature_api.md。

五、目录导航:快速定位源码与文档

  • 📖 API 文档:doc/feature_api.md
  • 📝 示例代码:entry/src/main/cangjie/(含 main_ability.cj 上下文初始化)
  • 🧩 播放器核心:svga/src/main/cangjie/player/(svga_controller.cj、state_controller.cj)
  • 🔄 版本记录:CHANGELOG.md
  • 📦 构建配置:cjpm.toml

按以上步骤,你只需要 4 次配置 + 1 段代码,就能在 HarmonyOS 应用中流畅播放 SVGA 动画,快去试试吧 ✨

【免费下载链接】svga-cjsvga格式动画展示库项目地址: https://gitcode.com/Cangjie-TPC/svga-cj

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/25 10:12:47

macOS上Python安装与卸载实战:从选型到清理残留的完整指南

很多人觉得在 macOS 上装 Python 没什么技术含量:去官网下个安装包,双击,下一步到底,然后打开终端敲一句python3 --version,一个下午就过去了。直到你真的拿它去做正经事,跑爬虫、配数据分析环境、写 Web 服…

作者头像 李华
网站建设 2026/9/25 10:12:28

总战争单位MOD批量制作:RPFM Unit Editor与Faction Painter实战教程

总战争单位MOD批量制作:RPFM Unit Editor与Faction Painter实战教程 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址…

作者头像 李华
网站建设 2026/9/25 10:03:31

STM32G431嵌入式V1封版实战:架构梳理、Flash分区与CAN通信收口

1. 从零散模块到可交付系统:V1封版到底在封什么 做过嵌入式项目的人大概都有这种体会:功能一个个调通了,CAN能收发、FreeRTOS任务跑起来了、Flash读写也验证过了,但当你试图把这些东西打包成一个"可以交给别人用"的版本…

作者头像 李华
网站建设 2026/9/25 10:01:33

CTF密码学题解:Base62+XXTEA+列置换三层加密逆向

上周末打了一场线上CTF,遇到一道叫“你没有见过的加密”的密码学题。刚开始我以为是普通的杂项题,结果解压附件后看到加密脚本,整个人都愣了一下——脚本里没有常见的AES、RSA,而是把自定义Base62编码、XXTEA、列置换三层变换叠在…

作者头像 李华