ui_texture_mapper
ui_texture_mapper 模块提供纹理映射组件,支持图像纹理的缩放、旋转与动画映射。
Class Summary
OHOS::UITextureMapper
图像旋转与缩放动画控件,继承自 UIImageView
- 构造:无
-
成员函数:
接口名称 功能简述 GetViewType 获取视图类型 Start 启动旋转缩放动画 SetRotateStart 设置旋转起始角度 SetRotateEnd 设置旋转终止角度 SetScaleStart 设置缩放起始比例 SetScaleEnd 设置缩放终止比例 SetDurationTime 设置动画持续时间 SetDelayTime 设置动画延迟时间 SetEasingFunc 设置动画缓动函数 Cancel 取消动画 Reset 重置为原始图像 SetPivot 设置旋转缩放中心点坐标 SetAnimatorStopListener 设置动画停止回调监听器 SetParentMatrix 设置父级变换矩阵 ReMeasure 重新测量布局 -
使用包含头文件:
#include "components/ui_texture_mapper.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/components/ui_texture_mapper.h - 公有运算符:无
- 继承关系:UIImageView
- 嵌套类型:AnimatorStopListener
- 模板形参:无
OHOS::UITextureMapper::AnimatorStopListener
动画停止事件监听器抽象基类,需继承实现 OnAnimatorStop 回调
- 构造:无
-
成员函数:
接口名称 功能简述 OnAnimatorStop 动画停止时的回调函数 -
使用包含头文件:
#include "components/ui_texture_mapper.h" - 声明头文件:
middleware/services/gui/uikit/ui/interfaces/kits/components/ui_texture_mapper.h - 公有运算符:无
- 继承关系:HeapBase
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::UITextureMapper
GetViewType
UIViewType GetViewType() const override
功能说明
- 核心用途:获取当前视图的类型标识
- 返回值为
UI_TEXTURE_MAPPER,用于区分 UITextureMapper 与其他 UIView 子类 - 该函数为 const 成员函数,不修改对象状态
返回值
- 返回类型:
UIViewType
返回视图类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_TEXTURE_MAPPER(28) | 当前对象为 UITextureMapper 实例 |
Start
void Start()
功能说明
- 核心用途:启动图像旋转与缩放动画
- 动画启动前需通过 SetRotateStart/SetRotateEnd、SetScaleStart/SetScaleEnd 设置动画起止参数
- 动画启动后将以已配置的缓动函数、持续时间、延迟时间执行旋转和缩放
SetRotateStart
void SetRotateStart(int16_t start)
功能说明
- 核心用途:设置图像旋转动画的起始角度
- 默认起始角度为 0,若未调用此接口则从当前停止位置开始旋转
- 该函数应在 Start 之前调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| start | int16_t | 旋转起始角度 | -360 ~ 360 |
SetRotateEnd
void SetRotateEnd(int16_t end)
功能说明
- 核心用途:设置图像旋转动画的终止角度
- 默认终止角度为 0
- 该函数应在 Start 之前调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| end | int16_t | 旋转终止角度 | -360 ~ 360 |
SetScaleStart
void SetScaleStart(float start)
功能说明
- 核心用途:设置图像缩放动画的起始比例
- 默认起始比例为 1.0,X 与 Y 方向等比缩放,不支持单方向缩放
- 该函数应在 Start 之前调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| start | float | 缩放起始比例 | > 0.0 |
SetScaleEnd
void SetScaleEnd(float end)
功能说明
- 核心用途:设置图像缩放动画的终止比例
- 默认终止比例为 1.0
- 该函数应在 Start 之前调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| end | float | 缩放终止比例 | > 0.0 |
SetDurationTime
void SetDurationTime(uint16_t durationTime)
功能说明
- 核心用途:设置动画持续时间,单位为毫秒
- 旋转与缩放共享同一持续时间,不可分别设置
- 实际动画总时长为 durationTime + delayTime
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| durationTime | uint16_t | 动画持续时间(毫秒) | 0 ~ 65535 |
SetDelayTime
void SetDelayTime(uint16_t delayTime)
功能说明
- 核心用途:设置动画延迟时间,单位为毫秒
- 旋转与缩放共享同一延迟时间,不可分别设置
- 调用此接口会更新动画总时长
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| delayTime | uint16_t | 动画延迟时间(毫秒) | 0 ~ 65535 |
SetEasingFunc
void SetEasingFunc(EasingFunc easingFunc)
功能说明
- 核心用途:设置动画缓动函数,控制动画速度变化曲线
- 旋转与缩放共享同一缓动函数,不可分别设置
- 默认缓动函数为线性匀速(EasingEquation::LinearEaseNone)
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| easingFunc | EasingFunc | 缓动函数指针 | EasingEquation 中定义的静态函数 |
Cancel
void Cancel()
功能说明
- 核心用途:取消当前正在执行的动画
- 动画将在当前播放帧位置停止,图像保持停止时的状态
- 取消后不会触发 AnimatorStopListener 回调
Reset
void Reset()
功能说明
- 核心用途:将图像重置为原始显示状态
- 重置后图像恢复为未旋转、未缩放的原始外观
- 已配置的动画参数(起止角度、缩放比例等)不会被清除,可再次调用 Start 执行
SetPivot
void SetPivot(float x, float y)
功能说明
- 核心用途:设置旋转和缩放的中心点坐标
- 坐标为相对于图像自身的位置,如图像中心点为 (width/2, height/2)
- 旋转和缩放均围绕此中心点执行
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| x | float | 中心点 x 坐标(相对于图像) | 0.0 ~ 图像宽度 |
| y | float | 中心点 y 坐标(相对于图像) | 0.0 ~ 图像高度 |
SetAnimatorStopListener
void SetAnimatorStopListener(AnimatorStopListener* listener)
功能说明
- 核心用途:设置动画停止事件的回调监听器
- 动画自然播放结束时将调用监听器的 OnAnimatorStop 回调
- 传入 nullptr 可移除已设置的监听器
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| listener | AnimatorStopListener* | 动画停止监听器指针,入参指针,可为 nullptr | nullptr 或有效的 AnimatorStopListener 实例指针 |
SetParentMatrix
void SetParentMatrix(Matrix4<float> matrix)
功能说明
- 核心用途:设置父级变换矩阵,用于组合父视图的变换效果
- 该矩阵将在 ReMeasure 时与动画变换矩阵组合计算最终变换
- 入参为值传递,调用后对象持有矩阵副本
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| matrix | Matrix4 |
父级 4x4 变换矩阵 | 有效的 4x4 浮点矩阵 |
ReMeasure
virtual void ReMeasure() override
功能说明
- 核心用途:重新测量并更新图像的布局与变换
- 根据当前动画状态与父级矩阵重新计算变换映射,更新视图显示
- 该函数重写自 UIImageView 的 ReMeasure
OHOS::UITextureMapper::AnimatorStopListener
OnAnimatorStop
virtual void OnAnimatorStop(UIView& view) = 0
功能说明
- 核心用途:动画停止时的纯虚回调函数,需由子类实现
- 当关联的 UITextureMapper 动画自然播放结束时被调用
- 该函数为纯虚函数,继承 AnimatorStopListener 时必须实现
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView& | 动画所属的视图引用,入参引用,只读 | 有效的 UIView 对象引用 |