简介
The Paint class holds the style and color information about how to draw geometries, text and bitmaps.
Paint:该类保存了绘制几何图形、文本和位图的样式和颜色信息。也就是说我们可以使用Paint保存的样式和颜色,来绘制图形、文本和bitmap,这就是Paint的强大之处。接下来我们使用Paint来绘图,并且看看该类有哪些样式和颜色
Paint的使用
使用Paint之前需要初始化
1
|
mPaint =
new
Paint();
|
总共有三种画笔的样式
FILL:填充内容;
STROKE:描边;
FILL_AND_STROKE:填充内容并描边。
设置画笔的宽度
1
|
mPaint.setStrokeWidth(
50
);
|
设置画笔的线帽
通过mPaint.setStrokeCap
来设置线帽,总共有三种线帽
BUTT:没有线帽,默认模式
ROUND:圆形
SQUARE:方形
设置Join
使用setStrokeJoin方法来设置Join,Join有三种类型:
BEVEL:直线
ROUND:圆角
MITER:锐角
设置防锯齿
1
|
mPaint.setAntiAlias(
true
);
|
如果设置防锯齿,会损失一定的性能
抖动处理
使用mPaint.setDither()方法,设置是否使用图像抖动处理。会使绘制的图片等颜色更加的清晰以及饱满,也是损失性能。
点组成线,线组成面,这样Path可以绘制各种各样的图形,可以说是无所不能的了,但是Path也提供了很多方法,来绘制图形。
文本绘制
上文中,介绍了Paint画笔,和绘制了一些图形。但是介绍Paint的时候,我们知道它可以绘制图形,文本和bitmap,所以Paint是非常强大的了,我们看下Paint是如何绘制文本的。
设置字符之间的间距
1
|
setLetterSpacing
|
设置文本删除线
1
|
mPaint.setStrikeThruText(
true
);
|
是否设置下划线
1
|
mPaint.setUnderlineText(
true
);
|
设置文本大小
1
|
mPaint.setTextSize(textSize);
|
设置字体类型
1
2
3
4
5
6
|
mPaint.setTypeface(Typeface.BOLD);
// Style
public
static
final
int
NORMAL =
0
;
//常规
public
static
final
int
BOLD =
1
;
//粗体
public
static
final
int
ITALIC =
2
;
//斜体
public
static
final
int
BOLD_ITALIC =
3
;
//粗斜体
|
字体类型有以上四种类型可以设置。
加载自定义字体
1
|
Typeface.create(familyName, style)
|
文字倾斜
1
|
mPaint.setTextSkewX(-
0
.25f);
|
文字倾斜默认为0,官方推荐的-0.25f是斜体
文本对齐方式
1
|
mPaint.setTextAlign(Align.LEFT)
|
有三种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public
enum
Align {
/**
* The text is drawn to the right of the x,y origin
*/
LEFT (
0
),
//左对齐
/**
* The text is drawn centered horizontally on the x,y origin
*/
CENTER (
1
),
//居中
/**
* The text is drawn to the left of the x,y origin
*/
RIGHT (
2
);
//右对齐
private
Align(
int
nativeInt) {
this
.nativeInt = nativeInt;
}
final
int
nativeInt;
}
|
计算制定长度的字符串
1
|
int
breadText = mPaint.breakText(text, measureForwards, maxWidth, measuredWidth)
|
canvas.drawCircle(300,300,100,paint);