一、作用
Paint 保存了绘制时的style and color信息。
二、Paint API
1. 内部类
2. 构造函数
// 创建默认画笔,使用默认配置
Paint()
// 创建一个新画笔,并通过flags参数进行配置
Paint(int flags)
// 创建一个新画笔,并复制参数中画笔的设置
Paint(Paint paint)
3. 常量
4. 公开方法
(1)flags 相关
// 获取画笔相关的一些设置(标志)
int getFlags()
// 设置标志,该方法会覆盖之前设置的内容,只有最后一次的生效
void setFlags(int flags)
// 复制 Paint 的设置
void set(Paint src)
// 将画笔恢复为默认设置
void reset()
常用的 flags 包括
- Paint.ANTI_ALIAS_FLAG
抗锯齿 - Paint.DITHER_FLAG
抗抖动
可以同时设置多个 flags
paint.setFlags(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
(2)画笔颜色相关
// 只返回颜色的 alpha 值
int getAlpha()
// 设置透明度
void setAlpha(int a)
// 返回画笔的颜色
int getColor()
// 设置颜色
void setColor(int color)
// 设置带透明通道的颜色
void setARGB(int a,int r, int g,int b)
可以用十进制或十六进制设置透明度
paint.setAlpha(204);
paint.setAlpha(0xXX);
可以用十进制或十六进制设置颜色
paint.setARGB(204,255,255,255,0);
paint(0xCC,0xFF,0xFF,0x00);
(3)画笔style(3种)
// 设置画笔 style
paint.setStyle(Paint.Style style);
共有3种 style
- Paint.Style.FILL
填充内容(默认模式) - Paint.Style.STROKE
描边,只绘制图形轮廓 - Paint.Style.FILLANDSTROKE
描边+填充
画笔宽度(画笔粗细)
// 设置画笔 style
paint.setStyle(Paint.Style style);
paint.setStrokeWidth(float width);
设置画笔宽度后,这条宽度是同时向两边进行扩展的。
摘自GCseSloop
画笔线帽(线段开始和结束时的效果)
// 指定线段开始和结束时的效果
void setStrokeCap(Paint.Cap cap)
共有3种Cap
- Paint.Cap.BUTT
无线帽(默认) - Paint.Cap.SQUARE
以线条宽度为大小,在开头和结尾处分别添加半个正方形 - Paint.Cap.ROUND
以线条宽度为直径,在开头和结尾处分别添加一个半圆
线段连接方式(拐角类型)
void setStrokeJoin(Paint.Join join)
共有3种 Join
- Paint.Join.MITER
尖角(默认) - Paint.Join.BEVEL
平角 - Paint.Join.ROUND
圆角
(4)PathEffect
PathEffect 在绘制之前修改几何路径,它可以实现划线,自定义填充效果和自定义笔触效果。它可作用于 Canvas 的各种绘制。
-
CornerPathEffect
圆角效果,将尖角替换为圆角。 -
DashPathEffect
虚线效果,用于各种虚线效果 -
PathDashPathEffect
Path虚线效果,虚线中间的间隔使用 Path 代替 -
DiscretePathEffect
让路径分段随机偏移 -
SumPathEffect
两个 PathEffect 效果组合,同时绘制两种效果 -
ComposePathEffect
两个 PathEffect 效果组合,先绘制效果1,再绘制2
(5)文字设置相关
- 文字大小
setTextSize(float textSize)
- 文本下划线
setUnderlineText(boolean unserlineText)
- 文本删除线
setStrikeThruText(boolean strikeThruText)
- 文本粗体
setFakeBoldText(boolean fakeBoldText)
- 设置斜体
setTextSkewX(float skewX)
- 文字阴影
setShadowLayer(float radius,float x,float y,int shadowColor)
网友评论