跳转至

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

struct ColorStop {
    float stop;
    uint32_t color;
};

成员说明

成员名称 数据类型 描述
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 图片