<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
上一篇我們介紹了 CustomPaint
的基本概念和使用,可以看到 CustomPaint
其實和 前端的 Canvas
基本上是一樣的,實際上前端 Canvas
支援的繪製方法 CustomPaint
都支援,畢竟 CustomPaint
其實也是基於 Canvas
實現的。本篇我們來介紹 CustomPaint
基本圖形的繪製。
繪製矩形比較簡單,方法定義如下:
void drawRect(Rect rect, Paint paint)
其中 rect
為要繪製矩形,paint
即畫筆設定物件。比如我們要水平居中繪製一個寬度200 x 120的矩形,可以使用如下程式碼:
canvas.drawColor(Color(0xFFF1F1F1), BlendMode.color); var center = size / 2; // 繪製矩形 var paint = Paint()..color = Color(0xFF2080E5); paint.strokeWidth = 2.0; canvas.drawRect( Rect.fromLTWH(center.width - 100, 60, 200, 120), paint, );
paint
預設是實心填充的,如果要空閒填充,設定paint
物件的style
屬性 為 PaintingStyle.stroke
即可。
繪製圓形上一篇有介紹過,和繪製矩形類似,只是傳入的引數是圓心位置,半徑和 paint
物件。
canvas.drawCircle( Offset(center.width - 80, 240), 40, paint, );
橢圓的尺寸是通過外接的矩形約束的,呼叫形式和繪製矩形相同。
canvas.drawOval( Rect.fromLTWH(center.width, 200, 120, 80), paint, );
繪製任意形狀通過 drawPath
實現,將所需要繪製的形狀路徑 使用 Path
物件構建即可。以畫一個等邊三角形為例,我們確定三個頂點的位置後,使用 Path
物件的 lineTo
方法將三個頂點連線起來即可。下面是實現程式碼。
// 使用 Path繪製三角形 Path trianglePath = Path(); // 空心繪製 paint.style = PaintingStyle.stroke; trianglePath.moveTo(center.width - 30, 300); trianglePath.lineTo(center.width + 30, 300); trianglePath.lineTo(center.width, 352); trianglePath.lineTo(center.width - 30, 300); canvas.drawPath(trianglePath, paint);
繪製弧形實際也是通過繪製橢圓實現的,只是通過控制繪製的角度來控制弧形繪製的範圍。繪製弧形的方法定義如下:
void drawArc(Rect rect, double startAngle, double sweepAngle, bool useCenter, Paint paint)
其中 rect
就是橢圓尺寸的約束矩形,startAngle
是起始角度,sweepAngle
是繪製的角度範圍。useCenter
表示是否到矩形中心點閉合,預設為 true
。即按順時針方向。預設是從中心點到對應起始角度的點連直線繪製完指定角度範圍後再通過連線直線回到中心點。如果 useCenter
為 false
,那麼就直接按弧線的起止點閉合,而不會回到中心點。下面是兩種繪製的區別,左邊是 useCenter
為 false
,右邊是 useCenter
為 true
,其他引數都相同。
下面的程式碼是繪製弧形的範例程式碼:
canvas.drawArc( Rect.fromLTWH(center.width - 60, 340, 120, 80), 0, pi / 2, false, paint, );
本篇介紹了 CustomPaint 繪製基本圖形的方法和範例,實際上 Flutter 的 Canvas 提供了很多其他繪製圖形的方法,如繪製線條,繪製圓角矩形,繪製文字等等,有興趣的可以參考官網的說明檔案檢視各個方法的使用。有了繪製基本圖形的基礎,我們就可以繪製一些有趣的圖形了 —— UI 小姐姐交代的任務還沒完成呢!
到此這篇關於Android Flutter利用CustomPaint繪製基本圖形詳解的文章就介紹到這了,更多相關Flutter CustomPaint繪製圖形內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45