ui_kaleidoscope_view
ui_kaleidoscope_view 模块提供万花筒视图组件,支持万花筒特效渲染与工具方法。
Class Summary
OHOS::KaleidoscopeUtils
提供万花筒图像生成与变换工具能力
- 构造:无
-
成员函数:
接口名称 功能简述 Init 初始化万花筒工具,设置源图像与目标缓冲区 Rotate 根据旋转值更新万花筒图像 UpdateKaleidoscopeImgInfo 更新万花筒图像数据地址 GetKaleidoscopeInfo 获取万花筒图像信息 GetSrcImgInfo 获取源图像信息 -
使用包含头文件:
#include "components/kaleidoscope_utils.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/kaleidoscope_utils.h - 公有运算符:无
- 继承关系:HeapBase
- 嵌套类型:无
- 模板形参:无
OHOS::UIKaleidoscopeView
提供万花筒旋转视图,支持旋转动画与旋转事件
- 构造:无
-
成员函数:
接口名称 功能简述 GetViewType 获取视图类型 SetSrc 设置万花筒源图像 Rotate 根据旋转值更新万花筒视图 SetRotateEventFactor 设置旋转事件因子 OnRotateEvent 处理旋转事件 SetRotateAnimatorValue 设置旋转动画值 StartRotateAnimator 启动旋转动画 StopRotateAnimator 停止旋转动画 OnDraw 绘制视图到目标缓冲区 DumpImgInfo 输出图像调试信息 -
使用包含头文件:
#include "components/ui_kaleidoscope_view.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_kaleidoscope_view.h - 公有运算符:无
- 继承关系:UIView
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::KaleidoscopeUtils
Init
bool Init(const ImageInfo* src, const ImageInfoExt* dst)
功能说明
- 核心用途:初始化万花筒工具,设置源图像与目标缓冲区
- 设计目的:为万花筒图像生成准备数据结构与路径参数
- 使用场景:作为 Rotate 接口的初始化前置步骤,完成数据结构与路径参数准备
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| src | const ImageInfo* | 入参只读指针,指向源图像信息 | 不为 nullptr |
| dst | const ImageInfoExt* | 入参只读指针,指向万花筒目标缓冲区;若为 nullptr 则由内部创建并管理 | nullptr 或有效的 ImageInfoExt 指针 |
返回值
- 返回类型:
bool
返回初始化结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 初始化成功 |
| false(0) | 初始化失败 |
Rotate
bool Rotate(float rotate)
功能说明
- 核心用途:根据旋转值更新万花筒图像
- 设计目的:通过旋转参数驱动万花筒图案变换,生成对称旋转视觉效果
- 使用场景:初始化完成后调用,按需更新万花筒显示角度
前置条件
- 已通过 Init 接口完成初始化
- 源图像数据有效且未释放
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| rotate | float | 旋转角度值 | 浮点数 |
返回值
- 返回类型:
bool
返回更新结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 更新成功 |
| false(0) | 更新失败 |
UpdateKaleidoscopeImgInfo
bool UpdateKaleidoscopeImgInfo(const ImageInfoExt& imgInfo)
功能说明
- 核心用途:更新万花筒图像数据地址,适用于使用外部管理 ImageInfoExt 的场景
- 设计目的:当初始化时传入外部管理的 ImageInfoExt,可通过本接口更新其数据地址
- 使用场景:外部缓冲区地址变更后需同步更新万花筒图像信息
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| imgInfo | const ImageInfoExt& | 入参只读引用,新的万花筒图像信息 | 有效的 ImageInfoExt 对象 |
返回值
- 返回类型:
bool
返回更新结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 更新成功 |
| false(0) | 更新失败 |
GetKaleidoscopeInfo
const ImageInfoExt* GetKaleidoscopeInfo()
功能说明
- 核心用途:获取万花筒图像信息
- 设计目的:提供万花筒生成结果的数据访问接口
- 使用场景:获取万花筒图像数据用于渲染或进一步处理
返回值
- 返回类型:
const ImageInfoExt*
返回万花筒图像信息指针
| 返回值 | 触发场景 |
|---|---|
| 非空指针 | 获取成功 |
| nullptr | 未初始化或数据无效 |
GetSrcImgInfo
const ImageInfo* GetSrcImgInfo()
功能说明
- 核心用途:获取源图像信息
- 设计目的:提供源图像数据的访问接口
- 使用场景:查询当前万花筒使用的源图像信息
返回值
- 返回类型:
const ImageInfo*
返回源图像信息指针
| 返回值 | 触发场景 |
|---|---|
| 非空指针 | 获取成功 |
| nullptr | 未初始化或数据无效 |
OHOS::UIKaleidoscopeView
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取视图类型
- 设计目的:标识当前视图为万花筒视图类型
- 使用场景:视图类型判断与分发
返回值
- 返回类型:
UIViewType
返回视图类型枚举值
| 返回值 | 触发场景 |
|---|---|
| UI_KALEIDOSCOPE_VIEW | 当前视图为万花筒视图 |
SetSrc
bool SetSrc(const ImageInfo* src)
功能说明
- 核心用途:设置万花筒源图像
- 设计目的:为万花筒视图指定源图像数据,图像尺寸需与屏幕尺寸匹配
- 使用场景:在视图显示前设置源图像
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| src | const ImageInfo* | 入参只读指针,指向源图像信息,图像尺寸需与屏幕尺寸匹配 | 不为 nullptr |
返回值
- 返回类型:
bool
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 设置成功 |
| false(0) | 设置失败 |
Rotate
void Rotate(float rotate)
功能说明
- 核心用途:根据旋转值更新万花筒视图
- 设计目的:驱动万花筒图案旋转变换
- 使用场景:设置源图像后调用,按需更新万花筒旋转角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| rotate | float | 旋转角度值 | 浮点数 |
SetRotateEventFactor
void SetRotateEventFactor(float factor)
功能说明
- 核心用途:设置旋转事件因子,用于调节旋转事件对万花筒旋转角度的影响比例
- 设计目的:提供旋转事件的灵敏度调节能力
- 使用场景:启用旋转输入后,调整旋转事件的响应系数
Kconfig 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| ENABLE_ROTATE_INPUT | 启用旋转输入事件支持 | - |
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| factor | float | 旋转事件因子 | 浮点数 |
OnRotateEvent
bool OnRotateEvent(const RotateEvent& event) override
功能说明
- 核心用途:处理旋转事件,根据旋转事件更新万花筒视图
- 设计目的:将旋转输入事件转化为万花筒旋转角度变化
- 使用场景:启用旋转输入后,由事件分发系统自动调用
Kconfig 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| ENABLE_ROTATE_INPUT | 启用旋转输入事件支持 | - |
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| event | const RotateEvent& | 入参只读引用,旋转事件对象 | 有效的 RotateEvent 对象 |
返回值
- 返回类型:
bool
返回事件处理结果
| 返回值 | 触发场景 |
|---|---|
| true(1) | 事件已处理 |
| false(0) | 事件未处理 |
SetRotateAnimatorValue
void SetRotateAnimatorValue(float rotate)
功能说明
- 核心用途:设置旋转动画回调中的旋转值
- 设计目的:为旋转动画提供逐帧旋转角度设置接口
- 使用场景:旋转动画回调中使用,逐帧设置万花筒旋转角度
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| rotate | float | 旋转角度值 | 浮点数 |
StartRotateAnimator
void StartRotateAnimator()
功能说明
- 核心用途:启动旋转动画
- 设计目的:启动万花筒自动旋转动画效果
- 使用场景:设置源图像后调用,启动自动旋转动画
StopRotateAnimator
void StopRotateAnimator()
功能说明
- 核心用途:停止旋转动画
- 设计目的:停止万花筒自动旋转动画
- 使用场景:需要停止自动旋转动画时调用
OnDraw
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override
功能说明
- 核心用途:将万花筒图像绘制到目标缓冲区
- 设计目的:重写 UIView 绘制接口,实现万花筒图像的帧缓冲写入
- 使用场景:由 UI 框架在渲染流程中自动调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gfxDstBuffer | BufferInfo& | 入参引用,目标图形缓冲区信息 | 有效的 BufferInfo 对象 |
| invalidatedArea | const Rect& | 入参只读引用,需要重绘的区域 | 有效的 Rect 对象 |
DumpImgInfo
void DumpImgInfo() override
功能说明
- 核心用途:输出图像调试信息
- 设计目的:重写 UIView 调试接口,输出万花筒视图相关图像信息
- 使用场景:调试与诊断时调用
Structures
ImageInfoExt
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| info | ImageInfo | 图像基础信息 |
| stride | uint32_t | 图像行跨距(字节数) |