ui_rain_view
ui_rain_view 模块提供雨滴特效视图组件,支持雨滴动画渲染。
Class Summary
OHOS::UIRainView
提供雨滴动画视图,支持雨滴图片序列播放与手指擦拭交互。
- 构造:无
-
成员函数:
接口名称 功能简述 SetRain 设置雨滴动画图片序列 SetTimeOfUpdate 设置雨滴图片更新间隔 GetTimeOfUpdate 获取雨滴图片更新间隔 SetTimeOfPause 设置无限循环动画两次播放之间的暂停间隔 GetTimeOfPause 获取无限循环动画两次播放之间的暂停间隔 Start 启动雨滴动画 Pause 暂停雨滴动画 Resume 恢复雨滴动画 Stop 停止雨滴动画 ClearWipeArea 手动清除擦拭区域 Clear 清除雨滴图片缓存及擦拭区域 GetState 获取雨滴动画器状态 SetBlur 设置模糊半径 GetBlur 获取模糊半径 SetWipeWidth 设置擦拭宽度 GetWipeWidth 获取擦拭宽度 OnDragStart 拖拽开始事件回调 OnDrag 拖拽进行中事件回调 OnDragEnd 拖拽结束事件回调 OnDraw 绘制雨滴视图 GetViewType 获取视图类型 -
使用包含头文件:
#include "components/ui_rain_view.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_rain_view.h - 公有运算符:无
- 继承关系:UIView, UIView::OnDragListener
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::UIRainView
SetRain
void SetRain(const ImageInfo* rainInfo[], uint8_t rainNum)
功能说明
- 核心用途:设置雨滴动画的图片序列,动画器将按序循环播放这些图片
- 设计目的:为雨滴效果提供可配置的图片资源输入,支持动态指定任意数量的雨滴帧
- 使用场景:在启动雨滴动画前调用,配置雨滴帧图片;动画停止后可重新调用以更换图片序列
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| rainInfo | const ImageInfo*[] | 入参只读指针数组,存储雨滴图片信息,内存在动画器停止前不可释放 | 非 nullptr,数组元素非 nullptr |
| rainNum | uint8_t | 雨滴图片数量 | 1 ~ 255 |
SetTimeOfUpdate
void SetTimeOfUpdate(uint16_t timeOfUpdate)
功能说明
- 核心用途:设置雨滴图片更新间隔,控制动画播放速度
- 设计目的:提供帧率控制能力,间隔越短动画越流畅
- 使用场景:在动画启动前或动画运行中调整雨滴图片切换频率
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| timeOfUpdate | uint16_t | 雨滴图片更新间隔,单位为毫秒 | 默认值为 DEFAULT_TASK_PERIOD |
GetTimeOfUpdate
uint16_t GetTimeOfUpdate() const
功能说明
- 核心用途:获取当前雨滴图片更新间隔
- 设计目的:为上层业务提供动画速度查询能力
- 使用场景:查询当前动画帧率配置,用于界面显示或条件判断
返回值
- 返回类型:
uint16_t
返回雨滴图片更新间隔,单位为毫秒
| 返回值 | 触发场景 |
|---|---|
| DEFAULT_TASK_PERIOD | 未设置时的默认值 |
| 用户设定值 | 调用 SetTimeOfUpdate 后的设定值 |
SetTimeOfPause
void SetTimeOfPause(uint16_t timeOfPause)
功能说明
- 核心用途:设置无限循环动画两次播放之间的暂停间隔
- 设计目的:控制雨滴动画循环播放节奏,在两轮播放间插入等待时间
- 使用场景:需要雨滴动画周期性播放与暂停交替时设置
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| timeOfPause | uint16_t | 两次播放之间的暂停间隔,单位为毫秒 | 默认值为 0,表示无间隔 |
GetTimeOfPause
uint16_t GetTimeOfPause() const
功能说明
- 核心用途:获取无限循环动画两次播放之间的暂停间隔
- 设计目的:为上层业务提供循环暂停间隔查询能力
- 使用场景:查询当前循环暂停配置,用于界面显示或条件判断
返回值
- 返回类型:
uint16_t
返回两次播放之间的暂停间隔,单位为毫秒
| 返回值 | 触发场景 |
|---|---|
| 0 | 未设置或默认无间隔 |
| 用户设定值 | 调用 SetTimeOfPause 后的设定值 |
Start
void Start()
功能说明
- 核心用途:启动雨滴动画播放
- 设计目的:激活动画器,开始按序播放雨滴图片序列
- 使用场景:在配置完雨滴图片序列及相关参数后调用,开始雨滴动画效果
Pause
void Pause()
功能说明
- 核心用途:暂停当前正在播放的雨滴动画
- 设计目的:保留当前播放状态,支持后续恢复
- 使用场景:需要临时中断动画但不重置播放进度时调用
Resume
void Resume()
功能说明
- 核心用途:恢复已暂停的雨滴动画继续播放
- 设计目的:从暂停位置继续播放,不重新开始
- 使用场景:在调用 Pause 后需要继续播放时调用
Stop
void Stop()
功能说明
- 核心用途:停止雨滴动画播放并重置动画状态
- 设计目的:终止动画器运行,播放进度归零
- 使用场景:需要完全终止雨滴动画效果时调用;停止后可调用 Clear 清理缓存
ClearWipeArea
void ClearWipeArea()
功能说明
- 核心用途:手动清除手指擦拭产生的蒙版区域
- 设计目的:恢复雨滴视图的完整显示,移除擦拭痕迹
- 使用场景:用户需要重置擦拭效果、恢复完整雨滴画面时调用
Clear
void Clear()
功能说明
- 核心用途:清除雨滴图片缓存及擦拭区域
- 设计目的:释放动画相关资源,重置视图状态
- 使用场景:在动画停止后调用,释放图片缓存与擦拭数据,为下次启动做准备
GetState
uint8_t GetState() const
功能说明
- 核心用途:获取雨滴动画器的当前运行状态
- 设计目的:为上层业务提供动画生命周期状态查询能力
- 使用场景:判断动画是否正在运行、暂停或停止,用于界面状态联动
返回值
- 返回类型:
uint8_t
返回动画器状态
| 返回值 | 触发场景 |
|---|---|
| Animator::START(1) | 动画正在播放 |
| Animator::STOP(0) | 动画已停止 |
SetBlur
void SetBlur(float radius)
功能说明
- 核心用途:设置雨滴视图的模糊半径
- 设计目的:为雨滴效果提供背景模糊强度配置,增强视觉层次感
- 使用场景:在启动动画前或运行中调整模糊程度,0 表示不模糊
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| radius | float | 模糊半径 | 默认值为 0,表示无模糊 |
GetBlur
float GetBlur() const
功能说明
- 核心用途:获取当前雨滴视图的模糊半径
- 设计目的:为上层业务提供模糊配置查询能力
- 使用场景:查询当前模糊程度,用于界面显示或条件判断
返回值
- 返回类型:
float
返回模糊半径
| 返回值 | 触发场景 |
|---|---|
| 0.0 | 未设置模糊或已重置 |
| 用户设定值 | 调用 SetBlur 后的设定值 |
SetWipeWidth
void SetWipeWidth(uint32_t width)
功能说明
- 核心用途:设置手指擦拭时的擦拭宽度
- 设计目的:控制擦拭轨迹的粗细,影响擦拭交互的视觉范围
- 使用场景:调整擦拭手感与视觉效果,宽度越大擦拭范围越宽
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| width | uint32_t | 擦拭宽度,单位为像素 | 默认值为 60 |
GetWipeWidth
uint32_t GetWipeWidth() const
功能说明
- 核心用途:获取当前手指擦拭的擦拭宽度
- 设计目的:为上层业务提供擦拭宽度查询能力
- 使用场景:查询当前擦拭宽度配置,用于界面显示或条件判断
返回值
- 返回类型:
uint32_t
返回擦拭宽度,单位为像素
| 返回值 | 触发场景 |
|---|---|
| 60 | 默认擦拭宽度 |
| 用户设定值 | 调用 SetWipeWidth 后的设定值 |
OnDragStart
bool OnDragStart(UIView& view, const DragEvent& event) override
功能说明
- 核心用途:处理拖拽开始事件,初始化擦拭交互
- 设计目的:响应手指按下并开始拖动的手势,记录擦拭起点
- 使用场景:当用户在雨滴视图上按下并开始拖动时由框架自动回调
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView& | 入参引用,触发拖拽事件的视图对象 | - |
| event | const DragEvent& | 入参只读引用,拖拽事件信息 | - |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true | 事件已被消费 |
| false | 事件未被消费 |
OnDrag
bool OnDrag(UIView& view, const DragEvent& event) override
功能说明
- 核心用途:处理拖拽进行中事件,更新擦拭区域
- 设计目的:响应手指拖动过程,实时更新擦拭轨迹与蒙版
- 使用场景:当用户在雨滴视图上持续拖动时由框架自动回调
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView& | 入参引用,触发拖拽事件的视图对象 | - |
| event | const DragEvent& | 入参只读引用,拖拽事件信息 | - |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true | 事件已被消费 |
| false | 事件未被消费 |
OnDragEnd
bool OnDragEnd(UIView& view, const DragEvent& event) override
功能说明
- 核心用途:处理拖拽结束事件,完成擦拭交互
- 设计目的:响应手指抬起结束拖动的手势,终止擦拭轨迹更新
- 使用场景:当用户在雨滴视图上结束拖动时由框架自动回调
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView& | 入参引用,触发拖拽事件的视图对象 | - |
| event | const DragEvent& | 入参只读引用,拖拽事件信息 | - |
返回值
- 返回类型:
bool
返回事件是否被消费
| 返回值 | 触发场景 |
|---|---|
| true | 事件已被消费 |
| false | 事件未被消费 |
OnDraw
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override
功能说明
- 核心用途:绘制雨滴视图内容,包括雨滴帧图片与擦拭蒙版
- 设计目的:由渲染框架在每帧绘制时调用,完成雨滴动画与擦拭效果的实际渲染
- 使用场景:由 UI 渲染框架自动调用,开发者通常不直接调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gfxDstBuffer | BufferInfo& | 入参引用,目标图形缓冲区信息 | - |
| invalidatedArea | const Rect& | 入参只读引用,需要重绘的无效区域 | - |
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取当前视图的类型标识
- 设计目的:为框架提供视图类型区分能力,支持类型安全的视图操作
- 使用场景:框架内部类型判断、视图树遍历时获取视图类型
返回值
- 返回类型:
UIViewType
返回视图类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_RAIN_VIEW | 当前视图为雨滴视图类型 |