ui_coverflow_view
ui_coverflow_view 模块提供封面流视图组件,支持以3D封面流形式横向展示和切换子视图。
Class Summary
OHOS::UICoverflowView
提供基于 3D 透视旋转效果的封面流滑动视图组件
- 构造:
explicit UICoverflowView(uint8_t mirrorOpa = 30, bool supportMirror = true) -
成员函数:
接口名称 功能简述 UICoverflowView 构造封面流视图对象,配置镜像透明度与镜像显示开关 Add 向封面流中添加一个条目 Remove 从封面流中移除指定条目 ClearAll 清除封面流中所有条目 SetImgSize 设置封面流中图片的宽高尺寸 SetImgPadding 设置封面流中图片之间的间隔 SetRotateAngle 设置静态展示模式下左右条目的旋转角度 GetViewType 获取组件类型 SetOnCoverflowListener 设置封面流滑动事件监听器 -
使用包含头文件:
#include "components/ui_coverflow_view.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_coverflow_view.h - 公有运算符:无
- 继承关系:UISwipeView
- 嵌套类型:OnCoverflowScrollListener
- 模板形参:无
OHOS::UICoverFlowView2
提供基于 UITransformGroup 的封面流滑动视图组件,支持镜像显示与旋转角度配置
- 构造:
explicit UICoverFlowView2(bool supportMirror = true, uint8_t mirrorOpa = 50) -
成员函数:
接口名称 功能简述 UICoverFlowView2 构造封面流视图2对象,配置镜像显示开关与镜像透明度 GetViewType 获取组件类型 Add 添加子视图到封面流中 Insert 在指定子视图之后插入新的子视图 Remove 从封面流中移除指定子视图 SetPagePadding 设置封面流中页面之间的间隔 SetChildMaxRotateAngle 设置静态展示模式下左右子视图的最大旋转角度 SetOnCoverflowListener 设置封面流滑动事件监听器 -
使用包含头文件:
#include "components/ui_coverflow_view2.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_coverflow_view2.h - 公有运算符:无
- 继承关系:UISwipeView
- 嵌套类型:OnCoverflowScrollListener
- 模板形参:无
OHOS::CoverflowViewWithCircle
在 UICoverflowView 基础上扩展选中圆形指示器功能的封面流视图组件
- 构造:无
-
成员函数:
接口名称 功能简述 Init 初始化选中圆形指示器资源 DeInit 释放选中圆形指示器资源 SetSelectCircleWidth 设置选中圆形指示器的线宽 SetSelectCircleColor 设置选中圆形指示器的颜色 SetRadialGradientStops 设置选中圆形指示器的径向渐变色标 -
使用包含头文件:
#include "components/ui_coverflow_view_with_circle.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/components/ui_coverflow_view_with_circle.h - 公有运算符:无
- 继承关系:UICoverflowView, UIView::OnDragListener, UISwipeView::OnSwipeListener
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::UICoverflowView
UICoverflowView
explicit UICoverflowView(uint8_t mirrorOpa = 30, bool supportMirror = true)
功能说明
- 构造 UICoverflowView 对象,初始化封面流视图的镜像透明度与镜像显示开关
- mirrorOpa 参数控制镜像图片的不透明度,默认值为 30
- supportMirror 参数控制是否显示镜像图片,默认为 true
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mirrorOpa | uint8_t | 镜像图片的不透明度,入参值,影响镜像图片的透明程度 | 0~255 |
| supportMirror | bool | 是否显示镜像图片,入参值,控制镜像渲染开关 | true / false |
Add
void Add(const char* id, const ImageInfo* src)
功能说明
- 向封面流中添加一个条目,通过唯一标识和图片信息指定条目内容
- id 参数作为条目的唯一标识,用于后续移除操作
- src 参数指向待展示的图片资源信息
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| id | const char* | 条目的唯一标识字符串,入参只读指针,不可为 nullptr | 有效字符串指针 |
| src | const ImageInfo* | 条目展示的主图片信息,入参只读指针,不可为 nullptr | 有效 ImageInfo 指针 |
Remove
void Remove(const char* id)
功能说明
- 从封面流中移除指定标识的条目
- 根据 id 匹配并移除对应条目,移除后视图自动刷新
- 若指定 id 不存在则不执行移除操作
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| id | const char* | 待移除条目的唯一标识字符串,入参只读指针 | 有效字符串指针 |
ClearAll
void ClearAll()
功能说明
- 清除封面流中所有条目
- 调用后封面流视图重置为空状态
- 可重复调用,无副作用
SetImgSize
void SetImgSize(uint16_t width, uint16_t height)
功能说明
- 设置封面流中图片的宽高尺寸
- width 参数设置图片宽度,height 参数设置图片高度
- 设置后影响封面流中所有图片的显示尺寸
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| width | uint16_t | 图片宽度,入参值 | 0~65535 |
| height | uint16_t | 图片高度,入参值 | 0~65535 |
SetImgPadding
void SetImgPadding(uint16_t padding)
功能说明
- 设置封面流中图片之间的间隔
- 两张图片之间的实际间隔为 padding 值的两倍
- 该值影响封面流中相邻图片的间距布局
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| padding | uint16_t | 图片间隔值,入参值,实际间隔为该值的两倍 | 0~65535 |
SetRotateAngle
void SetRotateAngle(float angle)
功能说明
- 设置静态展示模式下左右条目相对中心条目的旋转角度
- angle 值越大,左右条目倾斜程度越明显
- 该角度在视图重新测量时生效
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 旋转角度值,入参值,单位为度 | 浮点数 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 获取当前组件的类型标识
- 返回 UI_COVER_FLOW,用于运行时类型识别
- 该方法为 const 方法,不修改对象状态
返回值
- 返回类型:
UIViewType
返回组件类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_COVER_FLOW | 始终返回,标识该视图为封面流视图类型 |
SetOnCoverflowListener
void SetOnCoverflowListener(OnCoverflowScrollListener* onCoverflowListener)
功能说明
- 设置封面流滑动事件监听器
- 当用户滑动封面流时触发监听器回调
- 设置新的监听器将替换之前已设置的监听器
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| onCoverflowListener | OnCoverflowScrollListener* | 滑动事件监听器指针,入参指针,可为 nullptr 表示取消监听 | 有效指针或 nullptr |
OHOS::UICoverFlowView2
UICoverFlowView2
explicit UICoverFlowView2(bool supportMirror = true, uint8_t mirrorOpa = 50)
功能说明
- 构造 UICoverFlowView2 对象,初始化镜像显示开关与镜像不透明度
- supportMirror 参数控制是否显示镜像图片,默认为 true
- mirrorOpa 参数控制镜像图片的不透明度,默认值为 50
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| supportMirror | bool | 是否显示镜像图片,入参值,控制镜像渲染开关 | true / false |
| mirrorOpa | uint8_t | 镜像图片的不透明度,入参值,影响镜像图片的透明程度 | 0~255 |
GetViewType
UIViewType GetViewType() const override
功能说明
- 获取当前组件的类型标识
- 返回 UI_COVER_FLOW_2,用于运行时类型识别
- 该方法为 const 方法,不修改对象状态
返回值
- 返回类型:
UIViewType
返回组件类型标识
| 返回值 | 触发场景 |
|---|---|
| UI_COVER_FLOW_2 | 始终返回,标识该视图为封面流视图2类型 |
Add
void Add(UIView* view) override
功能说明
- 向封面流中添加子视图,仅允许添加 UITransformGroup 类型
- 不支持在 UITransform 中使用 UICanvasExt 的镜像图片
- 添加后视图将参与封面流的布局与渲染
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView* | 待添加的子视图指针,入参指针,不可为 nullptr | 有效 UITransformGroup 指针 |
Insert
void Insert(UIView* prevView, UIView* insertView) override
功能说明
- 在指定子视图之后插入新的子视图
- 新插入的子视图将排列在 prevView 指定的视图之后
- 插入后封面流视图自动重新布局
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| prevView | UIView* | 当前子视图指针,新视图将插入到该视图之后,入参指针 | 有效 UIView 指针或 nullptr |
| insertView | UIView* | 待插入的新子视图指针,入参指针,不可为 nullptr | 有效 UIView 指针 |
Remove
void Remove(UIView* view) override
功能说明
- 从封面流中移除指定的子视图
- 移除后封面流视图自动重新布局
- 若指定视图不存在则不执行移除操作
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| view | UIView* | 待移除的子视图指针,入参指针 | 有效 UIView 指针 |
SetPagePadding
void SetPagePadding(uint16_t padding)
功能说明
- 设置封面流中页面之间的间隔
- 两张页面之间的实际间隔为 padding 值的两倍
- 该值影响封面流中相邻页面的间距布局
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| padding | uint16_t | 页面间隔值,入参值,实际间隔为该值的两倍 | 0~65535 |
SetChildMaxRotateAngle
void SetChildMaxRotateAngle(float angle)
功能说明
- 设置静态展示模式下左右子视图的最大旋转角度
- angle 值越大,左右子视图倾斜程度越明显
- 该角度在视图重新测量时生效
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| angle | float | 最大旋转角度值,入参值,单位为度 | 浮点数 |
SetOnCoverflowListener
void SetOnCoverflowListener(OnCoverflowScrollListener* onCoverflowListener)
功能说明
- 设置封面流滑动事件监听器
- 当用户滑动封面流时触发监听器回调
- 设置新的监听器将替换之前已设置的监听器
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| onCoverflowListener | OnCoverflowScrollListener* | 滑动事件监听器指针,入参指针,可为 nullptr 表示取消监听 | 有效指针或 nullptr |
OHOS::CoverflowViewWithCircle
Init
void Init()
功能说明
- 初始化选中圆形指示器的 Path 资源
- 必须在对象创建后调用,为圆形指示器分配硬件绘制资源
- 若分配失败则释放已分配资源并置空指针
前置条件
- 对象已通过默认构造函数构造完成
- 硬件绘制引擎已初始化就绪
DeInit
void DeInit()
功能说明
- 释放选中圆形指示器的 Path 资源与渐变色标资源
- 调用前若存在硬件绘制缓冲,将同步硬件绘制后释放
- 调用后指针置空,避免悬空引用
前置条件
- 对象已通过默认构造函数构造完成
- 若已调用 Init,建议在对象销毁前调用 DeInit 释放资源
SetSelectCircleWidth
void SetSelectCircleWidth(float width)
功能说明
- 设置选中圆形指示器的线宽
- width 值影响圆形指示器的描边粗细
- 若传入负值则不设置并输出错误日志
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| width | float | 选中圆形指示器的线宽,入参值 | >= 0.0 |
SetSelectCircleColor
void SetSelectCircleColor(ColorType color)
功能说明
- 设置选中圆形指示器的纯色颜色
- 设置纯色后径向渐变渲染模式将被关闭
- 颜色值根据 COLOR_DEPTH 宏决定为 Color16 或 Color32 类型
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| color | ColorType | 选中圆形指示器的颜色值,入参值 | 有效 ColorType 值 |
SetRadialGradientStops
void SetRadialGradientStops(const ColorStop* stops, uint16_t stopCount)
功能说明
- 设置选中圆形指示器的径向渐变色标数组
- 设置渐变色标后渲染模式切换为径向渐变
- 内部拷贝色标数据,调用者可在调用后释放原始数据
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| stops | const ColorStop* | 渐变色标数组指针,入参只读指针,不可为 nullptr | 有效 ColorStop 数组指针 |
| stopCount | uint16_t | 色标数组元素个数,入参值 | >= 1 |
Enumerations
UIViewType
enum UIViewType : uint8_t {
UI_ROOT_VIEW = 0,
UI_VIEW_GROUP,
UI_LABEL,
UI_ARC_LABEL,
UI_LABEL_BUTTON,
UI_CHECK_BOX,
UI_TOGGLE_BUTTON,
UI_RADIO_BUTTON,
UI_IMAGE_VIEW,
UI_BOX_PROGRESS,
UI_SLIDER,
UI_CIRCLE_PROGRESS,
UI_SCROLL_VIEW,
UI_LIST,
UI_DIGITAL_CLOCK,
UI_ANALOG_CLOCK,
UI_PICKER,
UI_SWIPE_VIEW,
UI_TIME_PICKER,
UI_ABSTRACT_CLOCK,
UI_ABSTRACT_PROGRESS,
UI_ABSTRACT_SCROLL,
UI_AXIS,
UI_BUTTON,
UI_CANVAS,
UI_CHART,
UI_IMAGE_ANIMATOR_VIEW,
UI_REPEAT_BUTTON,
UI_TEXTURE_MAPPER,
UI_DIALOG,
UI_QRCODE,
UI_LABEL_EXT,
UI_LABEL_BUTTON_EXT,
UI_CANVAS_EXT,
UI_CHART_PILLAR,
UI_CHART_POLYLINE,
UI_X_AXIS,
UI_Y_AXIS,
UI_LITE_SURFACE_VIEW,
LAYOUT,
LIST_LAYOUT,
FLEX_LAYOUT,
GRID_LAYOUT,
UI_EDIT_TEXT,
UI_MENU_ITEM,
UI_CARD_PAGE,
UI_COVER_FLOW,
UI_SLIP_FLOW,
UI_FOLDABLE_VIEW,
UI_CROSS_VIEW,
UI_BARCODE,
UI_MAP_VIEW,
UI_KALEIDOSCOPE_VIEW,
UI_ROLLER_VIEW,
UI_HEXAGONS_LIST,
UI_IMAGE_PICKER,
UI_ICOSAHEDRON_VIEW,
UI_TRANSFORM_GROUP,
UI_TRANSFORM_LIST,
UI_COVER_FLOW_2,
UI_WATERFALL_LIST,
UI_SPHERE_VIEW,
UI_PARTICLE_VIEW,
UI_PLANET_LIST,
UI_OPTION_BOX,
UI_CARD_CONTAINER,
UI_VIDEO,
UI_LOTT_VIEW,
UI_FLOAT_BOX_VIEW,
UI_CHART_PILLAR_EXT,
UI_CUSTOM_PLANET_LIST,
UI_LIST_EXT,
UI_LIST_NESTED,
UI_SCROLL_VIEW_NESTED,
UI_SWIPE_VIEW_NESTED,
UI_POST_EFFECT_IMAGE_VIEW,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| UI_COVER_FLOW | 44 | UICoverflowView 组件类型标识 |
| UI_COVER_FLOW_2 | 57 | UICoverFlowView2 组件类型标识 |
Structures
ColorStop
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| stop | float | 渐变色标位置,取值范围 0.0~1.0 |
| color | uint32_t | 渐变色标颜色值 |
ImageInfo
struct ImageInfo {
ImageHeader header;
uint32_t dataSize;
const uint8_t* data;
union {
uint32_t color;
void* userData;
};
bool isHdr;
};
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| header | ImageHeader | 图片头节点信息 |
| dataSize | uint32_t | 图片数据大小,单位字节 |
| data | const uint8_t* | 像素颜色数据指针 |
| color | uint32_t | 用于 alpha 图片的颜色值(联合体成员) |
| userData | void* | 用户自定义数据指针(联合体成员) |
| isHdr | bool | 是否为 HDR 图片 |