跳转至

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

struct ImageInfoExt {
    ImageInfo info;
    uint32_t stride;
};

成员说明

成员名称 数据类型 描述
info ImageInfo 图像基础信息
stride uint32_t 图像行跨距(字节数)