呀,曾經的我是那么的單純,天真,粗略的翻了一遍小程序畫布API,沒有看見漸變色,就以為不支持漸變色
於是在項目中直接把原本的漸變色換成了單一顏色展示,發現很low啊
但是,自從上次小程序API文檔更新了以后,我突然看見了設置漸變色的api,以為是小程序開竅了,決定支持漸變色的使用了
哎呀,於是就去測試,但是尷尬的發現沒有例子並不會食用,就只能去萬能的社區百度了唄
emmm這一百度才發現,原理漸變色早就有了嗎!(原來單純的只是我眼瞎)
好吧,然后跟着社區前輩的經驗一點一點摸索,也算是大概知道這東西該怎么使用了
下面說步驟:
1. 創建繪圖上下文(就無恥的借用官方的啦)
var ctx = wx.createCanvasContext('firstCanvas')
2. 創建漸變色(重點來了)
let grd = ctx.createLinearGradient(0, 200, 0, 260)
這里解釋一下:createLinearGradient()繪制的漸變色的起始坐標並不是畫布的原點...而是你想要填充的起點坐標
觀眾:請說人話!謝謝
說的通俗一點,就是你想要在畫布的那一塊區域使用這個漸變色,那么那塊區域的其中一個頂點,就是你繪制漸變色的起點(終點)
比如說下面的案例:
grd.addColorStop(0, 'rgba(255, 255, 255, 0)') grd.addColorStop(1, 'rgba(0, 255, 0, 0.2)') ctx.setFillStyle(grd) ctx.fillRect(0, 200, 260, 60) ctx.draw()
addColorStop()就先不說了,看下面的fillRect()是創建一個矩形區域,那么很明顯我的漸變色是要用在這個區域里面的
那么漸變色的起點(終點)就很明顯了,這里我是將起點設置在(0,200)這個位置,剛好就是矩形區域的左上角頂點,
終點是(0,260),是矩形區域的左下頂點,那么展示的效果大概就是這樣子了:
一個從上到下的漸變色,就這樣實現了(鼓掌,鼓掌!)