一. 前言
Paint,顾名思义,就是画,作动词画画,引申为画笔,所以paint就相当于我们平常使用的画笔,而对paint的一些setXXX操作就是日常对画笔粗细,颜色等的操作,但是程序中的paint可能会比生活中的更强大些。
二. 通常的使用方式
1. 构造方法
1 2 3 4
| Paint mPaint = new Paint();
|
2. 重置画笔
画笔的重置,在自定义控件时,前面设置了画笔的各个参数,如果后面还要用到画笔但要更改参数, 这时就不用重新new一个画笔,直接重置下就可以了。
3. 设置画笔颜色
1
| mPaint.setColor(Color.RED);
|
4. 设置画笔宽度
1
| mPaint.setStrokeWidth(30);
|
5. 设置画笔的样式
1 2 3 4
|
mPaint.setStyle(Paint.Style.FILL);
|

6. 设置画笔的笔帽
笔帽,就是画笔画出来的线的两端的样式。
1 2 3 4
|
mPaint.setStrokeCap(Paint.Cap.BUTT);
|

7.设置两线相交样式
1 2 3 4
|
mPaint.setStrokeJoin(Paint.Join.MITER);
|

8. 设置抗锯齿
防锯齿,设置为true时,会损失一定的性能,使用时视情况而定。
1
| mPaint.setAntiAlias(true);
|

9. 设置是否使用图像抖动处理
使用图像抖动处理。会使绘制的图片等颜色更加的清晰以及饱满,也是损失性能。
三. 绘制文本方面的使用方式
1. 字符行间距
1 2 3 4 5
| mPaint.getFontSpacing();
mPaint.setLetterSpacing(12);
|
2. 字符间间距
1 2 3 4 5
| mPaint.getLetterSpacing();
mPaint.setLetterSpacing();
|
3. 字符大小
4. 文本对齐方式
1 2 3 4
|
mPaint.setTextAlign(Paint.Align.CENTER);
|
后面的drawText会以图片的形式讲解。
5. 字体类型
1 2 3 4 5 6
|
mPaint.setTypeface(Typeface.DEFAULT_BOLD);
|
除了系统提供的字体类型,我们也可以加载ttf文件,创建想要的类型。
参考文章:安卓开发引用ttf字体文件,其中assets文件夹需要自己创建,没有默认提供。
6. 文字倾斜
文字倾斜 默认0,官方推荐的-0.25f是斜体
1
| mPaint.setTextSkewX(-0.25f);
|
7. 获取文本的矩形区域
1
| void getTextBounds(String text, int start, int end, Rect bounds)
|
8. 获取文本的宽度
获取的是一个比较粗略的结果。
1 2
| float measureText(String text) float measureText(String text, int start, int end)
|
获取的是一个比较精确的结果。
1 2 3 4 5 6
| int getTextWidths(String text, float[] widths) int getTextWidths(String text, int start, int end, float[] widths)
float[] measuredWidth = new float[10];
int textWidths = mPaint.getTextWidths(str, measuredWidth);
|
参考文章
Paint.drawText()获取文字宽度
android高级自定义View之Paint高级使用(文字绘制)