技术无止境,只怕不学习啊,Flutter 我们开始吧
最近要使用Flutter 的自定义view来做图形引擎工作,所以来个插先了解一下自定义view,
Flutter中Widget已经做得很强大了但总有不满足的时候,需要我们通过自定义来实现效果。
Flutter的自定义和Android还是差不多的,但也有一些区别
1.新建类继承于CustomPainter实现paint()和shouldRepaint()方法
2.在paint方法中绘制你想要的内容
3.借助于 CustomPaint Widget来构建自己的Widget
画布canvas
画布是一个矩形区域,我们可以控制其每一像素来绘制我们想要的内容
canvas 拥有多种绘制点、线、路径、矩形、圆形、以及添加图像的方法,结合这些方法我们可以绘制出千变万化的画面。
虽然,画布可以画这些东西,但是决定这些图形颜色、粗细表现的还是画笔。
画笔Paint
Paint非常好理解,就是我们用来画图形的工具,我们可以设置画笔的颜色、粗细、是否抗锯齿、笔触形状以及作画风格。
通过这些属性我们可以很方便的来定制自己的UI效果,当然我们在“作画”的过程中可以定义多个画笔,这样更方便我们对图形的绘制
Offset坐标
这个就比较简单,一般指得是在坐标系中的一个点。
Rect
在图形的绘制中,一般都是分区域绘制的,这个区域一般都是一个矩形,在绘制中通常使用Rect来存储绘制的位置信息。
当然,你可以指定Rect的上、下、左、右
- left : 矩形左边的X坐标
- top: 矩形顶部的Y坐标
- right : 矩形右边的X坐标
- bottom: 矩形底部的Y坐标
使用你这四个值就可以确定这个矩形的位置和大小。
当然,在一些平台还会有Rect.fromCircle(Offset center, double radius)这个方法来构建矩形,其实想起来也是很简单的,center就是圆心的坐标,radius就是圆的半径,由这两个属性构成圆的外切矩形就是我们需要的矩形。
Flutter中的坐标系
在Flutter中坐标系的坐标原点在左上角,X坐标越往右越大,Y坐标越往下越大
因为在View自定义过程中我们需要排放多个View,所哟弄清楚这一点,在以后自定义Wdiget中会轻松很多。
下一篇开始时间自定义图形