path paint canvas 之間的用法

2021-08-15 16:34:23 字數 3353 閱讀 9816



drawable:是乙個可以在canvas上進行繪製的抽象。

drawable提供互動的機制主要的四種:

1:setbounds方法必須在繪製之前被呼叫。

2: getpadding方法可以從某些drawables返回關於如何放置其內容的資訊

reset()          

從當前輪廓點繪製一條線段到x,y點:

lineto(float x, float y)

起始輪廓點移至x,y座標點

moveto(float x, float y)

回到初始點

形成封閉的曲線

close()

用於繪製圓弧,這個圓弧取自rectf矩形的內接橢圓上的一部分,圓弧長度由後兩個引數決定

path.addarc(oval, startangle, sweepangle)

1. addarc可以直接加入一段橢圓弧。使用arcto還需要使用moveto指定當前點的座標。

2. arcto如果當前點座標和曲線的起始點不是同乙個點的話,還會自動新增一條直線補齊路徑。

arcto(rectf oval, float startangle, float sweepangle)

以當前路徑結束點為開始點,(x1,y1)為控制點,(x2,y2)為結束點畫一條二次貝塞爾曲線

quadto(float x1, float y1, float x2, float y2)

畫圓 addcircle(float x, float y, float radius, direction dir)

畫橢圓addoval(rectf oval, path.direction dir)

在已有的path上通過平移建立新的path:

addpath(path src, float dx, float dy)

paint類

paint paint = new paint();     

paint.setcolor(color.red);

//設定畫筆寬度

paint.setstrokewidth(3);

//消除鋸齒 以及從cancas類中消除鋸齒

canvas.setdrawfilter(

newpaintflagsdrawfilter(

0, paint.

anti_alias_flag

| paint.

filter_bitmap_flag

)); paint.setantialias(true);

//設定鏤空(方便檢視效果)

paint.setstyle(style.stroke);

//重置paint。

reset()

//設定一些標誌,比如抗鋸齒,下劃線等等。

setflags(int flags)

//設定抗鋸齒,如果不設定,載入點陣圖的時候可能會出現鋸齒狀的邊界,如果設定,邊界就會變的稍微有點模糊,鋸齒就看不到了。

setantialias(boolean aa)

//設定是否抖動,如果不設定感覺就會有一些僵硬的線條,如果設定影象就會看的更柔和一些,

setdither(boolean dither)

//這個是文字快取,設定線性文字,如果設定為true就不需要快取,

setlineartext(boolean lineartext)

//設定亞畫素,是對文字的一種優化設定,可以讓文字看起來更加清晰明顯,可以參考一下pc端的控制面板-外觀和個性化-調整cleartype文字

setsubpixeltext(boolean subpixeltext)

//設定文字的下劃線

setunderlinetext(boolean underlinetext)

//設定文字的刪除線

setstrikethrutext(boolean strikethrutext)

//設定文字粗體

setfakeboldtext(boolean fakeboldtext)

//對位圖進行濾波處理,如果該項設定為true,則影象在動畫進行中會濾掉對bitmap影象的優化操作,加快顯示 

setfilterbitmap(boolean filter)

//下面這幾個就不用說了,上面已經演示過

setstyle(style style),setstrokecap(cap cap),setstrokejoin(join join),settextalign(align align),

//設定畫筆顏色

setcolor(int color)

//設定畫筆的透明度[0-255],0是完全透明,255是完全不透明

setalpha(int a)

//設定畫筆顏色,argb形式alpha,red,green,blue每個範圍都是[0-255],

setargb(int a, int r, int g, int b)

//畫筆樣式為空心時,設定空心畫筆的寬度

setstrokewidth(float width)

//當style為stroke或strokeandfill時設定連線處的傾斜度,這個值必須大於0,看一下演示結果

setstrokemiter(float miter)

左上角的沒有設定setstrokemiter,右上角setstrokemiter(2.3f),左下角setstrokemiter(1.7f),右下角setstrokemiter(0f)

//這個沒整明白具體幹什麼

getfillpath(path src, path dst)

//設定著色器,用來給影象著色的,繪製出各種漸變效果,有bitmapshader,composeshader,lineargradient,radialgradient,sweepgradient幾種,

setshader(shader shader)

//設定畫筆顏色過濾器,有colormatrixcolorfilter,lightingcolorfilter,porterduffcolorfilter幾種,這個以後再單獨分析

setcolorfilter(colorfilter filter)

//設定圖形重疊時的顯示方式,下面來演示一下

setxfermode(xfermode xfermode)

//設定繪製路徑的效果,有composepatheffect,cornerpatheffect,dashpatheffect,discretepatheffect,pathdashpatheffect,sumpatheffect幾種,以後在單獨分析

setpatheffect(patheffect effect)

//對影象進行一定的處理,實現濾鏡的效果,如濾化,立體等,有blurmaskfilter,embossmaskfilter幾種

canvas類

PB視窗之間引數傳遞的幾種用

先來解釋一下引數傳遞的函式意義 message.stringparm 傳的是字元 message.doubleparm 傳的是數值 message.powerobjectparm 傳的是可以是視窗 物件 結構等等 例如 以數值傳遞為例 在w old視窗的相關事件中寫入如下 表示傳送要傳遞引數 lon...

用指令碼實現windows與linux之間檔案的傳輸

1 xshell實現windows上傳檔案到linux主機 2 在win下向linux上傳檔案的幾種方法 3 用rz,sz命令在windows和linux之間傳輸檔案 4 windows和linux互傳檔案 5 linux與windows之間ftp自動傳輸檔案 6 利用securecrt在linux...

Linux之間用scp傳檔案的使用方法

scp secure copy 是用來進行遠端檔案拷貝的。資料傳輸使用 ssh,並且和ssh 使用相同的認證方式,提供相同的安全保證 與rcp remote copy 不同的是,scp 在需要進行驗證時會要求你輸入密碼或口令。一 傳輸檔案 檔案 1.從本地上傳到遠端伺服器 1 scp local f...