Flutter 的绘制主要涉及两个Widget: CustomPainter, CustomPaint
CustomPainter:提供画布的组件; 有几个主要的参数:
a. painter : 绘制的对象,是一个CustomPaint。它的绘制是在children之前。如果设置了children,该painter绘制的内容会被覆盖。
b. foregroundPainter: 绘制的对象,是一个CustomPaint。它的绘制是在children之后。该painter绘制的内容会覆盖children 。
c. size: 绘制区域的大小,如果有child就忽略此属性直接用child的size。
d. child :
CustomPaint:是一个抽象类,要实现绘制的逻辑必须继承该抽象类,并实现它的paint和shouldRepaint方法。
void paint(Canvas canvas, Size size);: 里边实现具体的绘制逻辑。
– canvas: 画布
– size: 画布的大小
bool shouldRepaint(covariant CustomPainter oldDelegate); : 控制是否重绘
绘制
Paint 画笔
介绍几个常用的参数:
(1) color: 画笔的颜色
(2)strokeWidth: 线的宽度
(3)style: 填充模式,有两种: PaintingStyle.fill : 填充; PaintingStyle.stroke: 空心
(4)strokeCap:
(5)blendMode: 重叠部分的处理,一般在截取Image后合并Image用。
a. src: 只显示源图
b. dst: 只显示目标图
c. srcOver: 都显示,重叠部分是src覆盖在dst的上边;
d. dstOver: