paint_ext
paint_ext 模块提供画笔扩展功能,支持渐变填充、描边样式、图案填充等高级绘图属性设置。
Class Summary
OHOS::PaintExt
扩展 Paint 能力,支持硬件绘制的画笔类
- 构造:无
-
成员函数:
接口名称 功能简述 SetLinearGradient 设置线性渐变参数 SetRadialGradient 设置径向渐变参数 SetSweepGradient 设置扫描渐变参数 SetFillRule 设置填充规则 SetGradientSpread 设置渐变扩散模式 SetJoinType 设置描边连接类型 SetCapType 设置描边端点类型 SetAntialiased 设置抗锯齿标志 SetWrapPattern 设置图案填充参数 SetClipRect 设置裁剪矩形 -
使用包含头文件:
#include "common/paint_ext.h" - 声明头文件:
middleware/services/gui/uikit/proprietary/include/common/paint_ext.h - 公有运算符:无
- 继承关系:Paint
- 嵌套类型:无
- 模板形参:无
Functions
OHOS::PaintExt
SetLinearGradient
void SetLinearGradient(const LinearGradient& linear, const ColorStop* stops, uint16_t stopCount)
功能说明
- 核心用途:设置线性渐变的起止坐标与颜色停靠点
- 设计目的:为画笔配置线性渐变绘制能力
- 使用场景:需要沿直线方向进行颜色渐变绘制时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| linear | const LinearGradient& | 线性渐变参数,入参只读引用,不修改所指对象 | - |
| stops | const ColorStop* | 颜色停靠点数组指针,入参只读指针,不修改所指对象 | 可为 nullptr;不为 nullptr 时指向有效内存 |
| stopCount | uint16_t | 颜色停靠点数量 | 0 ~ 65535 |
SetRadialGradient
void SetRadialGradient(const RadialGradient& radial, const ColorStop* stops, uint16_t stopCount)
功能说明
- 核心用途:设置径向渐变的圆心、半径与颜色停靠点
- 设计目的:为画笔配置径向渐变绘制能力
- 使用场景:需要以圆形辐射方式进行颜色渐变绘制时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| radial | const RadialGradient& | 径向渐变参数,入参只读引用,不修改所指对象 | - |
| stops | const ColorStop* | 颜色停靠点数组指针,入参只读指针,不修改所指对象 | 可为 nullptr;不为 nullptr 时指向有效内存 |
| stopCount | uint16_t | 颜色停靠点数量 | 0 ~ 65535 |
SetSweepGradient
void SetSweepGradient(const SweepGradient& sweep, const ColorStop* stops, uint16_t stopCount)
功能说明
- 核心用途:设置扫描渐变的圆心、起始角度与颜色停靠点
- 设计目的:为画笔配置扫描渐变绘制能力
- 使用场景:需要以扇形扫描方式进行颜色渐变绘制时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| sweep | const SweepGradient& | 扫描渐变参数,入参只读引用,不修改所指对象 | - |
| stops | const ColorStop* | 颜色停靠点数组指针,入参只读指针,不修改所指对象 | 可为 nullptr;不为 nullptr 时指向有效内存 |
| stopCount | uint16_t | 颜色停靠点数量 | 0 ~ 65535 |
SetFillRule
void SetFillRule(const FillRule& fillRule)
功能说明
- 核心用途:设置路径填充规则
- 设计目的:控制路径区域内外判定策略
- 使用场景:绘制复杂路径时需指定填充判定规则
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| fillRule | const FillRule& | 填充规则枚举值,入参只读引用,不修改所指对象 | FillRule |
SetGradientSpread
void SetGradientSpread(const GradientSpread& gradientSpread)
功能说明
- 核心用途:设置渐变扩散模式
- 设计目的:控制渐变区域外像素的填充方式
- 使用场景:需定义渐变边界外颜色行为时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| gradientSpread | const GradientSpread& | 渐变扩散模式枚举值,入参只读引用,不修改所指对象 | GradientSpread |
SetJoinType
void SetJoinType(const JoinType& joinType)
功能说明
- 核心用途:设置描边路径段连接类型
- 设计目的:控制路径拐角处的连接样式
- 使用场景:绘制多段折线路径时需指定连接样式
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| joinType | const JoinType& | 连接类型枚举值,入参只读引用,不修改所指对象 | JoinType |
SetCapType
void SetCapType(const CapType& capType)
功能说明
- 核心用途:设置描边端点类型
- 设计目的:控制路径端点的绘制样式
- 使用场景:绘制开放路径时需指定端点样式
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| capType | const CapType& | 端点类型枚举值,入参只读引用,不修改所指对象 | CapType |
SetAntialiased
void SetAntialiased(bool antialiased)
功能说明
- 核心用途:设置抗锯齿使能标志
- 设计目的:控制绘制时是否启用抗锯齿
- 使用场景:需开关抗锯齿效果时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| antialiased | bool | 抗锯齿使能标志 | true:启用抗锯齿;false:禁用抗锯齿 |
SetWrapPattern
void SetWrapPattern(PatternType wrap, uint32_t color, Matrix3<float> mat, ImageInfo img)
功能说明
- 核心用途:设置图案填充的平铺模式、颜色、变换矩阵与图像信息
- 设计目的:为画笔配置图案填充绘制能力
- 使用场景:需以图片或纯色图案进行平铺填充时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| wrap | PatternType | 图案填充类型 | PatternType |
| color | uint32_t | 填充颜色值,wrap 为 PATTERN_FILL 时使用 | 0x00000000 ~ 0xFFFFFFFF |
| mat | Matrix3 |
图案变换矩阵,用于图案填充时的坐标变换 | - |
| img | ImageInfo | 图像信息,用于图片图案填充 | - |
SetClipRect
void SetClipRect(Rect clipRect)
功能说明
- 核心用途:设置裁剪矩形区域
- 设计目的:将绘制操作限制在指定矩形区域内
- 使用场景:需对绘制内容进行矩形区域裁剪时调用
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| clipRect | Rect | 裁剪矩形区域 | 有效矩形坐标范围 |
Enumerations
FillRule
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| NON_ZERO | 0 | 非零环绕规则 |
| EVEN_ODD | 1 | 奇偶规则 |
GradientSpread
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| SPREAD_PAD | 0 | 边缘颜色延伸填充 |
| SPREAD_REFLECT | 1 | 镜像反射填充 |
| SPREAD_REPEAT | 2 | 重复平铺填充 |
JoinType
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| JOIN_MITER | 0 | 尖角连接 |
| JOIN_ROUND | 1 | 圆角连接 |
| JOIN_BEVEL | 2 | 斜角连接 |
PatternType
enum class PatternType {
PATTERN_DISABLE = 0,
PATTERN_FILL,
PATTERN_PAD,
PATTERN_REFLECT,
PATTERN_REPEAT,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PATTERN_DISABLE | 0 | 禁用图案填充 |
| PATTERN_FILL | 1 | 纯色填充 |
| PATTERN_PAD | 2 | 边缘延伸填充 |
| PATTERN_REFLECT | 3 | 镜像反射填充 |
| PATTERN_REPEAT | 4 | 重复平铺填充 |
PaintType
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PAINT_GRADIENT | 0 | 渐变绘制模式 |
| PAINT_PATTERN | 1 | 图案填充绘制模式 |
| PAINT_COLOR | 2 | 纯色绘制模式 |
| PAINT_BUTT | 3 | 绘制类型结束标记 |
CapType
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| CAP_NONE | 0 | 无端点样式 |
| CAP_ROUND | 1 | 圆形端点样式 |
| CAP_ROUND_UNSHOW | 2 | 圆形端点样式(不显示) |
Structures
ColorStop
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| stop | float | 颜色停靠点位置,取值范围 0.0 ~ 1.0 |
| color | uint32_t | 颜色值 |
LinearGradient
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| startX | int16_t | 渐变起点 X 坐标 |
| startY | int16_t | 渐变起点 Y 坐标 |
| endX | int16_t | 渐变终点 X 坐标 |
| endY | int16_t | 渐变终点 Y 坐标 |
RadialGradient
struct RadialGradient {
int16_t centerX;
int16_t centerY;
int16_t focalX;
int16_t focalY;
int16_t radius;
};
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| centerX | int16_t | 渐变圆心 X 坐标 |
| centerY | int16_t | 渐变圆心 Y 坐标 |
| focalX | int16_t | 焦点 X 坐标(当前不支持) |
| focalY | int16_t | 焦点 Y 坐标(当前不支持) |
| radius | int16_t | 渐变半径 |
SweepGradient
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| centerX | int16_t | 渐变圆心 X 坐标 |
| centerY | int16_t | 渐变圆心 Y 坐标 |
| startAngle | int16_t | 起始角度,0 表示 12 点钟方向,90 表示 3 点钟方向 |
PatternInfo
成员说明
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| img | ImageInfo | 图像信息,用于图片图案填充 |
| wrap | PatternType | 图案填充类型 |
| color | uint32_t | 填充颜色值,wrap 为 PATTERN_FILL 时使用 |
| mat3 | Matrix3 |
图案变换矩阵 |