龙空技术网

Flutter绘图专题 绘制矩形、圆角矩形

早起的年轻人 53

前言:

此刻各位老铁们对“canvas背景颜色设置设置圆角”大概比较关心,同学们都想要知道一些“canvas背景颜色设置设置圆角”的相关内容。那么小编在网摘上汇集了一些关于“canvas背景颜色设置设置圆角””的相关文章,希望看官们能喜欢,朋友们快快来了解一下吧!

#头条创作挑战赛#

在Flutter中,绘图需要用到 CustomPaint 和 CustomPainter, CustomPainter可理解为画板,承载画布,CustomPaint可理解为画布,承载绘制的具体内容。

画布(Canvas)顾名思义就是用来在上面画图形,如绘制点、线、路径、矩形、圆形、以及添加图像等。

画笔(Paint)用来决定在画布上绘制图形的颜色、粗细、是否抗锯齿、笔触形状以及作画风格等等。

基本图片包括点、线、矩形(正方形、长方形)、弧、椭圆等等,绘制功能需要结合CustomPaint 和 CustomPainter来实现。

通过canvas画布的方法drawRect可以用来绘制矩形,如下图所示是绘制的一个矩形:

核心实现代码如下:

class RectPainter extends CustomPainter {  //[定义画笔]  final Paint _paint = Paint()    ..color = Colors.blueAccent //画笔颜色    ..strokeCap = StrokeCap.round //画笔笔触类型    ..isAntiAlias = true //是否启动抗锯齿    ..style = PaintingStyle.fill //绘画风格,默认为填充    ..strokeWidth = 2.0; //画笔的宽度  @override  void paint(Canvas canvas, Size size) {    //创建一个矩形    Rect rect = buildRect1();    //绘制矩形    canvas.drawRect(rect, _paint);  }  //创建矩形方式一  Rect buildRect1() {    //根据以屏幕左上角为坐标系圆点,分别设置上下左右四个方向距离    //left,  top,  right, bottom    return const Rect.fromLTRB(20, 40, 150, 100);  }}

绘制矩形的核心内容主要是创建Rect矩形,方式二是通过Rect的静态方法fromLTWH根据设置左上角的点与矩形宽高来绘制,坐标分析如下图所示,这样创建出来的矩形实际width为参数三配置的值150,height为参数四配置的值100,代码如下:

//创建矩形方式二  Rect buildRect2() {    //根据设置左上角的点与矩形宽高来绘制;    //left,  top,  width, height    return const Rect.fromLTWH(20, 40, 150, 100);  }

方式三是通过Rect的静态方法fromCircle根据圆形来绘制正方形,如下图所示,这里参考的圆形为所要绘制的正方形的内切圆,代码实现如下:

  //创建矩形方式三  Rect buildRect3() {    //根据根据圆形绘制正方形    //参数一 center Offset类型,参考圆形的中心    //参数二 radius 以center为圆心,以radius为半径    return const Rect.fromCircle(center: Offset(100, 100), radius: 50);  }

方式四是通过Rect的静态方法fromCenter根据中心点来绘制矩形,如下图所示,代码如下:

  //创建矩形方式四  Rect buildRect4() {    //根据根据中心点绘制正方形    //参数一 center Offset类型,参考圆形的中心    //参数二 width    //参数三 height    return Rect.fromCenter(center: Offset(100, 100), width: 100, height: 100);  }

方式五是通过Rect的静态方法fromPoints来创建矩形,fromPoints需要两个点,矩形的左上角的点与右下角的点:

  //创建矩形方式五  Rect buildRect5() {    //根据根对角点来绘制矩形    //参数一 矩形的左上角的点    //参数二 矩形右下角的点    return Rect.fromPoints(Offset(60, 50), Offset(200, 100));  }

通过canvas的drawRRect方法来绘制圆角矩形,如下图所示,是绘制圆角矩形,基本使用代码如下:

class RRectPainter extends CustomPainter {  //[定义画笔]  final Paint _paint = Paint()    //画笔颜色    ..color = Colors.red    //画笔的宽度    ..style = PaintingStyle.stroke    ..strokeWidth = 3.0;  @override  void paint(Canvas canvas, Size size) {    //创建圆角矩形    RRect rect = buildRect3();    //绘制    canvas.drawRRect(rect, _paint);  }//创建圆角矩形方式一  RRect buildRect1() {    //根据以画板左上角为坐标系圆点,分别设置上下左右四个方向距离来创建矩形    //left,  top,  right, bottom    //最后两个参数来设置圆角的大小    return const RRect.fromLTRBXY(20, 40, 250, 200, 60, 40);  }}

创建圆角矩形的方法RRect.fromLTRBXY最后两个参数radiusX与radiusY,是用来设置圆角的两个半径的,如下图所示的圆角半径分析图。

完毕

(此处已添加书籍卡片,请到今日头条客户端查看)

标签: #canvas背景颜色设置设置圆角