修改main.dart檔案:
import 'package:flutter/material.dart';
@override
widget build(buildcontext context)
}class drawingpage extends statelesswidget
}class curvepainter extends custompainter
@override
bool shouldrepaint(custompainter olddelegate)
}
接下來我們在curvepainter中實現繪製:
我們使用cubicto
方法設定路徑path:
void cubicto(double x1, double y1, double x2, double y2, double x3, double y3)
函式繪製路徑從當前點到(x3,y3),控制點是(x1,y1),(x2,y2)正如你看到的,
cubicto
方法接受3個點作為引數,前兩個代表控制點,最後乙個是結束點。開始點就是你的pen當前坐在canvas中的點。
canvas的座標系是左上角是(0,0)。右下角是(size.width, size.height)。所以可以嘗試調整4個點:
void paint(canvas canvas, size size)
paint
物件就是相當於我們的筆,被設定了藍色和寬度為3.
我們使用path表述貝塞爾曲線。moveto方法移動筆到開始點的位置。最後使用drawpath方法繪製出來。
可以是使用三方庫繪製虛線:
要使用它現在 pubspec.yml檔案新增這個庫:
dependencies:
flutter:
sdk: flutter
# use with the cupertinoicons class for ios style icons.
cupertino_icons: ^0.1.2
path_drawing: ^0.4.0
執行「flutter packages get」獲得庫,然後匯入標頭檔案就可以使用了:
import 'package:path_drawing/path_drawing.dart';
把上面的路徑用dashpath包裹一下就可以了:
canvas.drawpath(
dashpath(
path,
dasharray: circularintervallist([15.0, 10.5]),
),paint,
);
dashpath
方法接受兩個引數,第乙個就是要繪製的path,第二個引數定義每一段虛線的長度和兩個虛線間的間隔長度。結果如下:
繪製粗虛線
以前很少畫虛線,因此不太關心繪製粗虛線該怎麼辦。最近需要用到這個功能,因此學習了一下,與大家共享。cpen類有兩個建構函式,我們經常用第乙個,而忽略了第二個。其實很多問到畫粗線時希望改變線頭的預設顯示方式,比如希望是圓弧頭而不是預設的方形頭等。都可以用這個建構函式定義的cpen物件來實現。這裡我主要...
canvas 繪製虛線
var mycanvas document.queryselector canvas 獲取上下文 var ctx mycanvas.getcontext 2d ctx.beginpath ctx.linewidth 5 ctx.moveto 200,200 ctx.lineto 450,200 ct...
Android豎虛線繪製
在android ui製作中,經常會需要一些線條作為分隔線,一般做個width或height為1dp的view就可以解決了,如果需要虛線,則需要在drawable目錄自定義xml進行繪製了,一般xml如下 然後在需要畫虛線的地方使用該drawable作為背景即可。不過如果需要一條豎虛線,就麻煩很多。...