26.Flutter:成為Canvas繪制大師(二)

目錄傳送門:《Flutter快速上手指南》先導(dǎo)篇

接著上一篇 《Flutter:成為Canvas繪制大師(一)》,本篇繼續(xù)講解 Canvas 中的常用繪制操作疆柔。

繪制圓形drawCircle()

繪制圓形活翩。

?? e.g.:

canvas.drawCircle(Offset(size.width / 2, size.height / 2), 100, paint);

?? 效果:

image

設(shè)置空心效果 paint..style=PaintingStyle.stroke 屎开。

?? 效果:

image

繪制橢圓形drawOval()

需要提供一個(gè) Rect碉钠,繪制的是 Rect 的內(nèi)接矩形流妻。

?? e.g.:

Rect rect = Rect.fromLTRB(size.width / 2 - 100, size.height / 2 - 50,
    size.width / 2 + 100, size.height / 2 + 50);
canvas.drawOval(rect, paint);

?? 效果:

image

設(shè)置空心效果 paint..style=PaintingStyle.stroke 驹马。

?? 效果:

image

繪制圓弧drawArc()

繪制圓弧需要提供一個(gè) Rect革砸,圓弧相當(dāng)于是 Rect 的內(nèi)接橢圓上的一段。

看下這個(gè)函數(shù)所需的參數(shù):

參數(shù) 類型 說明
rect Rect 圓弧所在橢圓的外接矩形
startAngle double 起始位置的弧度糯累∷憷弧度制
sweepAngle double 設(shè)置圓弧掃過多少弧度∮窘悖弧度制
useCenter bool 表示是否鏈接到圓弧所在橢圓的中心
paint Paint 畫筆

?? e.g.:

Rect rect = Rect.fromCircle(
    center: Offset(size.width / 2, size.height / 2), radius: 140);
canvas.drawArc(rect, 0, math.pi / 2, true, paint);

?? 效果:

image

?? 注意笔时,圓弧的 startAnglesweepAngle 采用弧度制。參考:弧度制仗岸。
如果你想要獲得 π 值允耿,可以通過 dart 的 math 包下的 math.pi 獲取。

下圖是圓弧的0點(diǎn)示意圖:

image

?? 當(dāng) useCenter=true 的效果:

image

繪制陰影drawShadow()

在 Flutter 中扒怖,使用該函數(shù)你可以很方便的繪制陰影较锡。

看看該函數(shù)的參數(shù):

參數(shù) 類型 說明
path Path 繪制陰影的路徑
color Color 陰影的顏色
elevation double 陰影高度
transparentOccluder bool 是否透明封堵器。通常需要設(shè)置為true

?? e.g.:

Path path = Path()..addRect(rect.translate(20, 0));
canvas.drawShadow(path, Colors.amberAccent, 20, true);

你看盗痒,繪制 Shadow 不需要 Paint蚂蕴。

?? 效果:

image

什么?看不出來有什么用俯邓?

前面加個(gè)東西看看骡楼。

?? 效果:

image

看起來矩形漂浮起來了??。

繪制顏色drawColor()

Flutter 中的 drawColor() 是個(gè)比較不容易理解的繪制操作稽鞭。

為什么呢鸟整?看看它的參數(shù):

參數(shù) 類型 說明
color Color 顏色
blendMode BlendMode 色值混合模式。與此前繪制的內(nèi)容的混合朦蕴。

主要就是因?yàn)榈诙€(gè)參數(shù) blendMode篮条。

不同的值會有不同的表現(xiàn)。

在進(jìn)行混合的時(shí)候吩抓,有一個(gè)目標(biāo)色值 dst(調(diào)用drawColor()之前已經(jīng)繪制的內(nèi)容)和一個(gè)源色值 src(就是第一個(gè)參數(shù)的色值)涉茧。

混合就是,以不同的算法疹娶,根據(jù) dstsrc 計(jì)算出新的色值伴栓。

?? e.g.:

canvas.drawColor(Colors.redAccent, BlendMode.src);

?? 效果:

image

由于在調(diào)用 drawColor() 之前沒有繪制過內(nèi)容,所以混合就是和背景進(jìn)行的。

可以看到钳垮,此時(shí)模式為 BlendMode.src 時(shí)除师,可以給整個(gè)畫布上顏色。

?? 如果此前已經(jīng)繪制了內(nèi)容:

image

加上如下代碼:

canvas.drawColor(Colors.redAccent, BlendMode.color);

?? 效果:

image

使用 BlendMode.color 模式就像給此前的繪制的內(nèi)容加了濾鏡 ??扔枫。

BlendMode 模式特別的多汛聚,可以參考官方的例子:BlendMode官方圖解

目錄傳送門:《Flutter快速上手指南》先導(dǎo)篇

如何找到我?

傳送門:CoorChice 的主頁

傳送門:CoorChice 的 Github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末短荐,一起剝皮案震驚了整個(gè)濱河市倚舀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忍宋,老刑警劉巖痕貌,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異糠排,居然都是意外死亡舵稠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門入宦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哺徊,“玉大人,你說我怎么就攤上這事乾闰÷渥罚” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵涯肩,是天一觀的道長轿钠。 經(jīng)常有香客問我,道長病苗,這世上最難降的妖魔是什么疗垛? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮硫朦,結(jié)果婚禮上贷腕,老公的妹妹穿的比我還像新娘。我一直安慰自己阵幸,他們只是感情好花履,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挚赊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪济瓢。 梳的紋絲不亂的頭發(fā)上荠割,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼蔑鹦。 笑死夺克,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嚎朽。 我是一名探鬼主播铺纽,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼哟忍!你這毒婦竟也來了狡门?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤锅很,失蹤者是張志新(化名)和其女友劉穎其馏,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爆安,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叛复,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扔仓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褐奥。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碴开,死狀恐怖舱沧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情镰绎,我是刑警寧澤缘揪,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布耍群,位于F島的核電站,受9級特大地震影響找筝,放射性物質(zhì)發(fā)生泄漏蹈垢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一袖裕、第九天 我趴在偏房一處隱蔽的房頂上張望曹抬。 院中可真熱鬧,春花似錦急鳄、人聲如沸谤民。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽张足。三九已至,卻和暖如春坎藐,著一層夾襖步出監(jiān)牢的瞬間为牍,已是汗流浹背哼绑。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碉咆,地道東北人抖韩。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像疫铜,于是被迫代替她去往敵國和親茂浮。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345