drawRect static method
dynamic
drawRect(
- dynamic canvas,
- dynamic path,
- dynamic paint,
- dynamic pathList,
Implementation
static drawRect(canvas, path, paint, pathList) {
if (pathList == null || pathList.isEmpty) {
return;
}
path.reset();
int i = 0, il = pathList.length;
for (; i < il; i++) {
var d = pathList[i];
if (d[0] == 'drawRect') {
//移动到某个点
path.moveTo(d[1][0], d[1][1]);
if (d[1].length == 4) {
final rect =
Rect.fromLTWH(d[1][0], d[1][1], d[1][2], d[1][3]); // 左、顶、右、底坐标
canvas.drawRect(rect, paint);
} else {
RRect rrect;
if (d[1][4] is List) {
//每个圆角自由控制
rrect = RRect.fromRectAndCorners(
Rect.fromLTWH(d[1][0], d[1][1], d[1][2], d[1][3]),
topLeft: Radius.circular(d[1][4][0]),
topRight: Radius.circular(d[1][4][1]),
bottomRight: Radius.circular(d[1][4][2]),
bottomLeft: Radius.circular(d[1][4][3]),
);
} else {
//所有圆角一样
rrect = RRect.fromRectAndCorners(
Rect.fromLTWH(d[1][0], d[1][1], d[1][2], d[1][3]),
topLeft: Radius.circular(d[1][4]),
topRight: Radius.circular(d[1][4]),
bottomRight: Radius.circular(d[1][4]),
bottomLeft: Radius.circular(d[1][4]),
);
}
canvas.drawRRect(rrect, paint);
}
}
}
}