跳转至

lottie

lottie 模块提供Lottie动画视图组件,支持解析和渲染Lottie JSON动画。

Class Summary

OHOS::UILottView

Lottie 动画视图控件,用于加载和播放 Lottie 动画文件

  • 构造:无
  • 成员函数

    接口名称 功能简述
    SetSrc 设置 Lottie 动画源文件
    Start 启动 Lottie 动画播放
    Pause 暂停 Lottie 动画播放
    Resume 恢复 Lottie 动画播放
    Stop 停止 Lottie 动画播放
    SetRepeat 设置动画是否重复播放
    IsRepeat 查询动画是否重复播放
    GetState 获取动画当前状态
    SetPlayCount 设置动画播放次数
    GetPlayCount 获取当前动画播放次数
    GetCurrentFrame 获取当前动画帧号
    SetReverse 设置动画是否反向播放
    IsReverse 查询动画是否反向播放
    SetOnLottAnimStopListener 设置动画停止回调监听器
    GetOnLottAnimStopListener 获取当前动画停止回调监听器
  • 使用包含头文件#include "lottie/ui_lott_view.h"

  • 声明头文件middleware/services/gui/uikit/proprietary/include/lottie/ui_lott_view.h
  • 公有运算符:无
  • 继承关系:UIView
  • 嵌套类型:OnLottAnimStopListener
  • 模板形参:无

Functions

OHOS::UILottView

SetSrc

bool SetSrc(std::string file, FILE *fp = nullptr, uint32_t offset = 0)

功能说明

  • 核心用途:设置 Lottie 动画的源文件路径,加载动画资源
  • 设计目的:支持从文件系统路径加载 Lottie 动画,同时支持通过文件指针和偏移量从打包文件中加载
  • 使用场景:在播放动画前调用,设置动画源后可调用 Start 启动播放

入参

名称 参数类型 详细说明 约束取值范围
file std::string Lottie 动画源文件路径 有效的文件路径字符串
fp FILE * 文件指针,入参指针,可为 nullptr nullptr 或有效的文件指针;缺省值为 nullptr
offset uint32_t 文件偏移量,用于从打包文件中定位动画数据 0 ~ UINT32_MAX;缺省值为 0

返回值

  • 返回类型:bool

返回源文件设置结果

返回值 触发场景
true(1) 源文件设置成功
false(0) 源文件设置失败

Start

void Start()

功能说明

  • 核心用途:启动 Lottie 动画播放
  • 设计目的:从动画起始帧开始播放 Lottie 动画
  • 使用场景:在 SetSrc 成功设置源文件后调用,启动动画播放

Pause

void Pause()

功能说明

  • 核心用途:暂停当前正在播放的 Lottie 动画
  • 设计目的:暂停动画后可调用 Resume 恢复播放
  • 使用场景:动画播放过程中需要临时暂停时调用

Resume

void Resume()

功能说明

  • 核心用途:恢复已暂停的 Lottie 动画播放
  • 设计目的:从暂停位置继续播放动画
  • 使用场景:动画已通过 Pause 暂停后,需恢复播放时调用

Stop

void Stop()

功能说明

  • 核心用途:停止 Lottie 动画播放
  • 设计目的:停止动画播放并重置播放状态,触发 OnLottAnimStopListener 回调
  • 使用场景:需要终止动画播放时调用

SetRepeat

void SetRepeat(bool repeat)

功能说明

  • 核心用途:设置 Lottie 动画是否重复播放
  • 设计目的:控制动画播放完成后是否自动重新开始播放
  • 使用场景:在启动动画前或播放过程中设置重复播放模式

入参

名称 参数类型 详细说明 约束取值范围
repeat bool 是否重复播放 true:重复播放;false:不重复播放

IsRepeat

bool IsRepeat() const

功能说明

  • 核心用途:查询 Lottie 动画是否设置为重复播放
  • 设计目的:获取当前重复播放配置状态,为 const 成员函数,不修改对象状态
  • 使用场景:需要判断当前动画是否处于重复播放模式时调用

返回值

  • 返回类型:bool

返回重复播放状态

返回值 触发场景
true(1) 动画设置为重复播放
false(0) 动画未设置为重复播放

GetState

uint8_t GetState() const

功能说明

  • 核心用途:获取 Lottie 动画当前播放状态
  • 设计目的:为 const 成员函数,不修改对象状态,返回动画器当前状态值
  • 使用场景:需要查询动画当前处于播放、暂停、停止等状态时调用

返回值

  • 返回类型:uint8_t

返回动画状态值

返回值 触发场景
0 动画处于停止状态
1 动画处于播放状态
2 动画处于暂停状态

SetPlayCount

void SetPlayCount(uint16_t count)

功能说明

  • 核心用途:设置动画播放次数
  • 设计目的:控制动画播放的次数,0 表示无限循环播放
  • 使用场景:在启动动画前设置播放次数;仅在 SetRepeat 设为 false 时生效

入参

名称 参数类型 详细说明 约束取值范围
count uint16_t 播放次数,0 表示无限循环 0 ~ 65535

GetPlayCount

uint16_t GetPlayCount() const

功能说明

  • 核心用途:获取当前动画播放次数设置
  • 设计目的:为 const 成员函数,不修改对象状态,返回当前配置的播放次数
  • 使用场景:需要查询动画播放次数配置时调用

返回值

  • 返回类型:uint16_t

返回当前播放次数设置

返回值 触发场景
0 无限循环播放
1~65535 对应设置的播放次数

GetCurrentFrame

float GetCurrentFrame() const

功能说明

  • 核心用途:获取当前动画帧号
  • 设计目的:为 const 成员函数,不修改对象状态,返回动画当前所在帧号
  • 使用场景:需要获取动画播放进度或当前帧位置时调用

返回值

  • 返回类型:float

返回当前帧号

返回值 触发场景
>= 0.0f 当前动画帧号

SetReverse

void SetReverse(bool reverse)

功能说明

  • 核心用途:设置动画是否反向播放
  • 设计目的:控制动画播放方向,支持正向或反向播放
  • 使用场景:在启动动画前或播放过程中设置反向播放模式

入参

名称 参数类型 详细说明 约束取值范围
reverse bool 是否反向播放 true:反向播放;false:正向播放

IsReverse

bool IsReverse() const

功能说明

  • 核心用途:查询动画是否设置为反向播放
  • 设计目的:为 const 成员函数,不修改对象状态,获取当前反向播放配置
  • 使用场景:需要判断当前动画是否处于反向播放模式时调用

返回值

  • 返回类型:bool

返回反向播放状态

返回值 触发场景
true(1) 动画设置为反向播放
false(0) 动画设置为正向播放

SetOnLottAnimStopListener

void SetOnLottAnimStopListener(OnLottAnimStopListener* listener)

功能说明

  • 核心用途:设置动画停止回调监听器
  • 设计目的:注册回调,在动画播放停止时触发通知
  • 使用场景:动画播放完成或调用 Stop 后需要执行特定逻辑时设置监听器

入参

名称 参数类型 详细说明 约束取值范围
listener OnLottAnimStopListener* 动画停止监听器指针,入参指针,可为 nullptr nullptr 或有效的 OnLottAnimStopListener 指针

GetOnLottAnimStopListener

UILottView::OnLottAnimStopListener* GetOnLottAnimStopListener() const

功能说明

  • 核心用途:获取当前动画停止回调监听器
  • 设计目的:为 const 成员函数,不修改对象状态,返回当前已设置的监听器指针
  • 使用场景:需要查询当前已注册的动画停止监听器时调用

返回值

  • 返回类型:UILottView::OnLottAnimStopListener*

返回当前监听器指针

返回值 触发场景
非空指针 已设置监听器
nullptr 未设置监听器