是什么
Paint,顾名思义,就是画,作动词画画,引申为画笔,所以paint就相当于我们平常使用的画笔,而对paint的一些setXXX操作就是日常对画笔粗细,颜色等的操作,但是程序中的paint可能会比生活中的更强大些。
怎么样
API文档解释:
The Paint class holds the style and color information about how to draw geometries, text and bitmaps.
从Api定义可知,画笔持有样式和颜色信息,关于怎么样的信息呢,关于如何绘制几何图形,文本和位图的样式和颜色信息。
大体分为两类,图形绘制和文本绘制。
怎么用
从构造方法开始看
有图可知,Paint有三个构造方法,
- 第一个是无参数构造方法,也是默认构造方法,携带默认设置,比如默认黑色,无坑锯齿,不加粗等。
- 第二个是带flags参数的构造方法,将光标移到这个构造方法上,会对flags做这样的解释
初看以为是flags的枚举,于是在使用时这样
发现没有,原来重点在前一句set the paint's flags
设置paint的flags,当然是用Paint去获得flags呀~
对着api文档,一一解释这里的枚举类型是什么作用,也可以直接查看API文档
截了一张图,更直观
分别表示:
- 可抗锯齿
- 可设置字间距
- 可抖动
- 可设定标记
- 可过滤位图
- 设置暗示模式为HINTING_OFF,不可暗示
- 设置暗示模式为HINTING_OFF,可暗示
- 设置为线性文本
- 设置为删除线效果文本
- 设置为可亚像素文本
- 设置为下划线效果文本
当在构造方法中设置了这些值,就不用通过paint对象去设置了,但我个人认为,通过对象去设置更为方便
- 第三个是设置Paint参数的构造方法,初始化paint的属性,感觉和第二个构造方法很相似,不知道有啥区别,而且paint都有那么多setXXX方法了为什么还要加这两个个构造方法呢,直接对默认的对象进行设置不行么?这是我的疑问,可能很无知,但我确实不知道,如果有幸被哪位知道的人看到了,麻烦告诉我一声,谢谢~
从API开始看
图形绘制
// 参数1,透明度,参数2:红,参数3:绿,参数4:蓝 均为int 类型,取值范围0~255,不是小数
setARGB(int a,int r,int g,int b);
//设置透明度,参数同上参数1,取值范围相同
setAlpha(int a);
//设置颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色
setColor(int color);
//设置是否坑锯齿,会消耗大量资源,绘图速度变慢[这个属性要实际理解,在后面借用别人的一张图]