画笔的基本属性
颜色、宽度、是否填充
下面介绍4个常用方法:
setAntiAlias()
- 该函数的具体声明: void setAntiAlias(boolean aa)
- 表示是否打开抗锯齿功能。抗锯齿是依赖算法的,一般在绘制不规则的图形时使用,比 如圆形、文字等。在绘制棱角分明的图像时,比如一个矩形、一张位图,是不需要打开抗锯 齿功能的
- 在打开抗锯齿功能的情况下,所绘图像可以产生平滑的边缘
setColor()
- 该函数的具体声明: void setColor(int color)
- 作用是设置画笔颜色
- 一个颜色值是由红、绿、蓝三色合成出来的,所以,参数 color 只能取 8 位的 0xAARRGGBB 样式颜色值
其中:
A 代表透明度(Alpha),取值范围是 0~255(对应十六进制的 0x00~0xFF),取值越 小,透明度越高,图像也就越透明。当取 0 时,图像完全不可见。
R 代表红色值(Red),取值范围是 0~255(对应十六进制的 0x00~0xFF),取值越小, 红色越少。当取 0 时,表示红色完全不可见;当取 255 时,红色完全显示
G 代表绿色值(Green),取值范围是 0~255(对应十六进制的 0x00~0xFF),取值越 小,绿色越少。当取 0 时,表示绿色完全不可见;当取 255 时,绿色完全显示
B 代表蓝色值(Blue),取值范围是 0~255(对应十六进制的 0x00~0xFF),取值越小, 蓝色越少。当取 0 时,表示蓝色完全不可见;当取 255 时,蓝色完全显示
比如 0xFFFF0000 就表示大红色。因为透明度是 255,表示完全不透明,红色取全量值 255, 其他色值全取 0,表示颜色中只有红色;当然,如果我们不需要那么红,则可以适当减少红色 值,比如 0xFF0F0000 就会显示弱红色
当表示黄色时,由于黄色是由红色和绿色合成的,所 以 0xFFFFFF00 就表示纯黄色。当然,如果我们需要让黄色带有一部分透明度,以便显示出 所画图像底层图像,则可以适当减少透明度值,比如 0xABFFFF00;当透明度减少到 0 时, 任何颜色都是不可见的,也就是图像变成了全透明,比如 0x00FFFFFF,虽然有颜色值,但由 于透明度是 0,所以整个颜色是不可见的
除手动组合颜色的方法以外,系统还提供了一个专门用来解析颜色的类——Color(后面介绍)
示例: 绘制一大一小两个圆,并且将这两个圆叠加起来,上方的圆半透明
Paint paint=new Paint();
paint.setColor(0xFFFF0000);
paint.setStyle(Paint.Style.FILL);
paint.setStrokeWidth(50);
canvas.drawCircle(190, 200, 150, paint);
paint.setColor(0x7EFFFF00);
canvas.drawCircle(190, 200, 100, paint);
setStyle()
完整的函数声明:void setStyle(Style style)
该函数用于设置填充样式,对于文字和几何图形都有效
style 的取值如下:(FILL_AND_STROKE是FILL和STROKE叠加在一起显示的结果)
- Paint.Style.FILL:仅填充内部
- Paint.Style.FILL_AND_STROKE:填充内部和描边
- Paint.Style.STROKE:仅描边
setStrokeWidth()
完整的函数声明:void setStrokeWidth(float width)
- 用于设置描边宽度值,单位是px
- 当画笔的Style样式是STROKE和FILL_AND_STROKE 时有效