在Flutter的Canvas中绘制圆角矩形,可以使用drawRRect方法。以下是具体实现:
方法一:使用drawRRect
// 在CustomPainter的paint方法中
@override
void paint(Canvas canvas, Size size) {
final paint = Paint()
..color = Colors.blue
..style = PaintingStyle.fill;
final rect = Rect.fromLTWH(50, 50, 200, 100);
final radius = Radius.circular(12.0);
final rrect = RRect.fromRectAndRadius(rect, radius);
canvas.drawRRect(rrect, paint);
}
方法二:使用RRect.fromRectAndCorners(自定义各角半径)
final rrect = RRect.fromRectAndCorners(
Rect.fromLTWH(50, 50, 200, 100),
topLeft: Radius.circular(15),
topRight: Radius.circular(5),
bottomRight: Radius.circular(15),
bottomLeft: Radius.circular(5),
);
方法三:使用RRect.fromLTRBAndCorners
final rrect = RRect.fromLTRBAndCorners(
50, 50, 250, 150, // left, top, right, bottom
topLeft: Radius.circular(10),
bottomRight: Radius.circular(10),
);
关键参数说明:
Rect:定义矩形位置和尺寸
Radius:圆角半径,可使用Radius.circular()创建统一圆角,或Radius.elliptical()创建椭圆角
Paint:定义绘制样式(颜色、描边等)
绘制描边圆角矩形:
final paint = Paint()
..color = Colors.red
..style = PaintingStyle.stroke
..strokeWidth = 2;
通过组合不同的RRect构造方法和Paint属性,可以灵活创建各种样式的圆角矩形。