Draw學(xué)習(xí)(2)

Canvas類里面有一個(gè)方法為canvas.drawPath方法,這個(gè)方法就是用來(lái)繪制我們的自定義Path對(duì)象。Path對(duì)象很有用,我們可以繪制一些特殊的動(dòng)畫效果,文字吸附效果等等。所以我們需要來(lái)學(xué)習(xí)下Path對(duì)象的使用。

Path類,有兩個(gè)構(gòu)造函數(shù),一個(gè)無(wú)參構(gòu)造函數(shù)Path()創(chuàng)建一個(gè)空的path,一個(gè)是帶參構(gòu)造函數(shù)Path(Path src)創(chuàng)建一個(gè)非空的帶有src的Path;

成員函數(shù):

path.addArc(RectF oval,float startAngle,float sweepAngle) 畫弧線 stratAngle是只開始的角度,X軸正方向?yàn)?度,sweepAngle是持續(xù)的角度;

path.addPath(Path src,float x,float y);畫一個(gè)src的Path對(duì)象,x是起始橫坐標(biāo),y是起始縱坐標(biāo)。

path.addOval(RectF oval,Direction dir)畫圓,Direction有兩類,Path.Direction.CW(順時(shí)針畫) Path.Direction.CCW(逆時(shí)針畫);

path.addRect(RectF rect,Direction dir)矩形路徑;

path.moveTo(float x,float y); x y是起始移動(dòng)點(diǎn)的橫坐標(biāo)和縱坐標(biāo),并不畫,只是將畫筆移動(dòng)到x y坐標(biāo)

path.lineTo(float x,float y); 用于直線繪畫,默認(rèn)從(0,0)繪畫到(x,y)

path.quadTo(float x1,float y1,float x2,float y2);用于繪制圓滑的曲線,既貝塞爾曲線,(x1,y1)為控制點(diǎn),(x2,y2)為結(jié)束點(diǎn)。(貝塞爾曲線的形成,就比如我們把一條橡皮筋拉直,橡皮筋的頭尾部對(duì)應(yīng)起點(diǎn)和終點(diǎn),然后從拉直的橡皮筋中選擇任意一點(diǎn)(除頭尾對(duì)應(yīng)的點(diǎn)外)扯動(dòng)橡皮筋形成的彎曲形狀,而那個(gè)扯動(dòng)橡皮筋的點(diǎn)就是控制點(diǎn))

path.cubicTo(float x1,float y1,float x2,float y2,float x3,float y3)也是用于繪制貝塞爾曲線。(x1,y1)為控制點(diǎn),(x2,y2)為控制點(diǎn),(x3,y3)為結(jié)束點(diǎn)。比quadTo(多了一個(gè)控制點(diǎn)) 如要畫和quadTo一樣的則將第一個(gè)控制點(diǎn)寫成起始位置即可。

path.arcTo(ovalRectF, startAngle, sweepAngle),ovalRectF為橢圓的矩形,startAngle為開始角度,sweepAngle為結(jié)束角度。

rMoveTo,rlineTo,rQuadTo,rCubicTo方法不帶r的方法是基于原點(diǎn)坐標(biāo)系(偏移量),帶r的不是基于遠(yuǎn)點(diǎn)坐標(biāo),是基于當(dāng)前坐標(biāo)的(偏移量)

path.close(),閉合,曲線繪制完成后,使用該方法可以得到一個(gè)閉合的曲線。

path.setLastPoint(float x,float y) 重置最后一個(gè)點(diǎn)(x,y)的坐標(biāo)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容