作為flutter的小白用戶,想入門這個技能,又不想看一堆堆的資料藤乙,那怎么辦呢猜揪?跟著我走唄,因為我就是這樣入門的:
沒有目標(biāo)的學(xué)習(xí)都是浪費時間
沒有目標(biāo)坛梁,茫茫書海而姐,不知道從哪里著手,所以就給自己定一個目標(biāo)吧划咐,我就是要用flutter做一款手繪拴念、涂鴉的草稿板,
那么她應(yīng)該有如下基本功能:
一個繪圖界面
可以修改畫筆大小
可以修改畫筆顏色
可以放大縮小褐缠、旋轉(zhuǎn)和移動
可以出錯回退政鼠、前進
可以畫面清除
先上張完成情況的demo圖吧:
以上羅列的是草稿板的基本功能,后期可能還有拓展功能队魏,比如登錄公般,分享,歷史查看等等就作為下一期目標(biāo)吧胡桨。
首先是繪圖功能
通過針對性的查找相關(guān)資料官帘,原來flutter繪圖涉及到幾個組件的應(yīng)用:
Canvas,負責(zé)繪圖
GestureDetector昧谊,負責(zé)屏幕上的動作
provider刽虹,負責(zé)組件狀態(tài)管理
這部分的難點就是如何將屏幕上的各種手勢轉(zhuǎn)換為繪圖中的點線,一開始不懂狀態(tài)管理呢诬,要實現(xiàn)繪圖過程中的redo涌哲,換顏色,
換筆頭大小都非常的吃累尚镰,靜心學(xué)了下provider模塊阀圾,一切都變得簡單了。
其次是變換狗唉,即放大縮小平移旋轉(zhuǎn)等
涉及到這塊的實現(xiàn)時遇到了如下組件:
Transform,Matrix4,負責(zé)空間的變換
Animation初烘,負責(zé)變換過程中的動畫
這部分的難點在于如何在同一個屏幕來區(qū)別到底是用戶要執(zhí)行放大旋轉(zhuǎn)等變換操作還是要進行繪畫操作,為了實現(xiàn)這塊內(nèi)容敞曹,
花費了不少時間研究了GestureDetector的各種事件账月,Listener原始指針事件。
在一個就是顏色選取組件的實現(xiàn)
這組件涉及到如下內(nèi)容:
dialog澳迫,對話框
HSVColor局齿,色彩轉(zhuǎn)換組件
這一塊的實現(xiàn)目前還不夠完善,難點還是處理手勢橄登、位移抓歼、數(shù)學(xué)計算等
總結(jié)
這篇文章從大的方面講述了我學(xué)習(xí)flutter的思路讥此,感覺很湊效,一個多月的時間谣妻,不斷向目標(biāo)靠近萄喳,遇到問題,針對性的網(wǎng)上
找參考找答案蹋半,整個過程中你會不斷的遇到新的問題他巨,新的知識,然后就有了對flutter開發(fā)框架的大體輪廓和解決新問題的思路减江,
總之就是一個從小白到“專家”的一個成長過程染突,當(dāng)然我還在路上……