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

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

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

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

9. 设置是否使用图像抖动处理
使用图像抖动处理。会使绘制的图片等颜色更加的清晰以及饱满,也是损失性能。
三. 绘制文本方面的使用方式
1. 字符行间距
| 12
 3
 4
 5
 
 | mPaint.getFontSpacing();
 
 
 mPaint.setLetterSpacing(12);
 
 | 
2. 字符间间距
| 12
 3
 4
 5
 
 | mPaint.getLetterSpacing();
 
 
 mPaint.setLetterSpacing();
 
 | 
3. 字符大小
4. 文本对齐方式
| 12
 3
 4
 
 | 
 
 mPaint.setTextAlign(Paint.Align.CENTER);
 
 | 
后面的drawText会以图片的形式讲解。
5. 字体类型
| 12
 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. 获取文本的宽度
获取的是一个比较粗略的结果。
| 12
 
 | float measureText(String text)float measureText(String text, int start, int end)
 
 | 
获取的是一个比较精确的结果。
| 12
 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高级使用(文字绘制)