Android 关于 Paint 你知道的和不知道的一切
2024-02-14 07:45:17
前言:最主要的还是set方法
在 Android 中,Paint 类是一个非常重要的绘图类,它提供了各种各样的方法来绘制图形和文本。可以说,它是 Android 图形绘制的基础。要使用 Paint 类,首先需要创建一个 Paint 对象,然后使用它的各种方法来设置画笔的各种属性,如颜色、线宽、画笔样式等。
Paint 类提供了很多方法,这些方法可以分为两类:一类是设置方法,另一类是绘制方法。设置方法用于设置画笔的各种属性,如颜色、线宽、画笔样式等。绘制方法用于使用画笔在 Canvas 上绘制图形和文本。
其中,最主要的还是set方法,常用的有以下这些:
setColor(int color)
:设置画笔的颜色。setStrokeWidth(float width)
:设置画笔的线宽。setStyle(Paint.Style style)
:设置画笔的样式。setStrokeCap(Paint.Cap cap)
:设置画笔的线帽。setStrokeJoin(Paint.Join join)
:设置画笔的线段连接处的样子。setPathEffect(PathEffect effect)
:设置画笔的路径效果。setMaskFilter(MaskFilter maskfilter)
:设置画笔的遮罩滤镜。setImageFilter(ImageFilter imagefilter)
:设置画笔的图像滤镜。setXfermode(Xfermode xfermode)
:设置画笔的混合模式。
这些方法可以帮助你自定义画笔,以满足不同的绘图需求。
一、画笔的常规配置
1. 颜色
画笔的颜色可以通过 setColor(int color)
方法来设置。颜色值是一个 32 位的整数,其中前 8 位表示透明度,后 24 位表示颜色。透明度值从 0 到 255,0 表示完全透明,255 表示完全不透明。颜色值可以使用 Color.rgb(int red, int green, int blue)
方法来创建,也可以使用十六进制颜色值来表示。例如,以下代码将画笔的颜色设置为红色:
paint.setColor(Color.RED);
2. 线宽
画笔的线宽可以通过 setStrokeWidth(float width)
方法来设置。线宽是一个浮点数,表示画笔的宽度。线宽的单位是像素。例如,以下代码将画笔的线宽设置为 5 个像素:
paint.setStrokeWidth(5.0f);
3. 画笔样式
画笔的样式可以通过 setStyle(Paint.Style style)
方法来设置。画笔的样式有三种:FILL
、STROKE
和 FILL_AND_STROKE
。FILL
表示只填充图形的内部,STROKE
表示只描边图形的轮廓,FILL_AND_STROKE
表示填充图形的内部并描边图形的轮廓。例如,以下代码将画笔的样式设置为只描边图形的轮廓:
paint.setStyle(Paint.Style.STROKE);
二、笔的样式:Paint.Style.
:[#FILL|STROKE|FILL_AND_STROKE]
画笔的样式用于控制填充的类型。有三种样式:
FILL
:只填充图形内部。STROKE
:只描边图形轮廓。FILL_AND_STROKE
:填充图形内部并描边图形轮廓。
例如,以下代码将填充一个矩形:
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, 100, 100, paint);
以下代码将描边一个矩形:
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(0, 0, 100, 100, paint);
以下代码将填充并描边一个矩形:
paint.setStyle(Paint.Style.FILL_AND_STROKE);
canvas.drawRect(0, 0, 100, 100, paint);
三、线帽:Paint.Cap.
:[#BUTT|ROUND|SQUARE]
线帽用于控制线段末端的形状。有三种线帽:
BUTT
:线段末端是平的。ROUND
:线段末端是圆形的。SQUARE
:线段末端是方形的。
例如,以下代码将使用圆形线帽来绘制一条线段:
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(0, 0, 100, 100, paint);
四、线宽:setStrokeWidth()
线宽用于控制线的宽度。线宽的单位是像素。例如,以下代码将设置线宽为 5 个像素:
paint.setStrokeWidth(5.0f);
五、颜色:setColor()
颜色用于控制线的颜色。颜色可以是任何颜色值,例如红色、绿色、蓝色等。例如,以下代码将设置线的颜色为红色:
paint.setColor(Color.RED);
六、路径效果:setPathEffect()
路径效果用于控制线的路径。路径效果可以是任何路径效果,例如虚线、点线、波浪线等。例如,以下代码将设置线的路径为虚线:
paint.setPathEffect(new DashPathEffect(new float[]{10.0f, 5.0f}, 0.0f));
七、遮罩滤镜:setMaskFilter()
遮罩滤镜用于控制线的边缘。遮罩滤镜可以是任何遮罩滤镜,例如模糊、发光、浮雕等。例如,以下代码将设置线的边缘为模糊:
paint.setMaskFilter(new BlurMaskFilter(10.0f, BlurMaskFilter.Blur.NORMAL));
八、图像滤镜:setImageFilter()
图像滤镜用于控制线的图像。图像滤镜可以是任何图像滤镜,例如灰度、反色、浮雕等。例如,以下代码将设置线的图像为灰度:
paint.setImageFilter(new ColorMatrixColorFilter(new float[]{0.2126f, 0.7152f, 0.0722f, 0.0f, 0.0f, 0.2126f, 0.7152f, 0.0722f, 0.0f, 0.0f, 0.2126f, 0.7152f, 0.0722f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f}));
九、Xfermode:setXfermode()
Xfermode用于控制线的混合模式。Xfermode可以是任何混合模式,例如叠加、乘法、屏幕等。例如,以下代码将设置线的混合模式为叠加:
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.OVERLAY));
十、文本绘制
除了绘制图形外,Paint 类还可以用来绘制文本。要绘制文本,首先需要创建一个 Paint
对象,然后使用它的 drawText()
方法来绘制文本。drawText()
方法的第一个参数是文本内容,第二个参数是文本的起始位置,第三个参数是文本的结束位置,第四个参数是画笔。例如,以下代码将绘制一段文本:
String text = "Hello, world!";
paint.setColor(Color.BLACK);
paint.setTextSize(20.0f);
canvas.drawText(text, 0, 0, paint);
结语
通过本文,你已经对 Android 中的 Paint 类有了全面的了解。你可以使用 Paint 类来绘制各种各样的图形和文本。发挥你的想象力,使用 Paint 类来创建出美观大方的界面和图形。