Android Path中繪製的折線如何變得很平滑

2021-08-09 16:53:14 字數 768 閱讀 2445

多個點可以連成乙個折線,如何將折線的擬合處變為曲線,使得整個線看上去更加平滑呢?

方法1:

paint.setstrokejoin(paint.join.round)

這個方法可以將path中所有線段的join方式設定為round,實際效果就是擬合處變成了更加平滑的曲線;

方法2:

cornerpatheffect cornerpatheffect = new cornerpatheffect(200);

paint.setpatheffect(cornerpatheffect);

此處的200就是平滑的度數;

方法3:

自己去實現,原理很簡單,就是在兩條線段相連的地方

原始做法:

moveto(x1,y1);

lineto(x2,y2);

lineto(x3,y3);

此時就是兩條線段相連;

平滑做法:

moveto(x1,y1);

lineto(x21,y21);(x21,y21)是(x1,y1)–(x2,y2)上的乙個點,很接近(x2,y2);

quadto(x31,y31);(x31,y31)是(x2,y2)–(x3,y3)上的乙個點,很接近(x2,y2);

lineto(x3,y3);

具體實現上還要考慮很多,例如兩條線段的長度啊,形成的角度等等;

ps:推薦使用第一種,實現簡單,而且不需要像方法2那樣設定乙個固定的角度(設定固定角度的效果不是很適用於所有角度的折線);

canvas繪製中的API

canvas繪製z 先貼 吧 1 2 created by administrator on 2016 1 26.3 4vari 5 function draw id 11function painting view code 這裡值得一提的是setinterval方法。格式 setinterval...

Android中繪製虛線

利用shape繪製虛線 真機除錯時可能會出現虛線變實線的現象 在manifest檔案對應的activity節點中設定 android hardwareaccelerated false 即可 1.0 encoding utf 8 shape xmlns android android shape l...

canvas中繪製文字

canvas提供兩種文字渲染方式 filltext text,x,y maxwidth 在指定的 x,y 處填充文字,繪製的最大寬度是可選的 stroketext text,x,y maxwidth 在指定的 x,y 處繪製文字邊框,繪製的最大寬度是可選的 屬性 font value 當前繪製文字的...