Canvas,Paint方法記錄 一

2021-08-04 12:18:14 字數 3110 閱讀 9809

paint.setstyle(style style) 設定繪製模式

paint.setcolor(int color) 設定顏色

paint.setstrokewidth(float width) 設定線條寬度

paint.settextsize(float textsize) 設定文字大小

paint.setantialias(boolean aa) 設定抗鋸齒開關–一般開啟

1.畫圓 drawcircle(float cx, float cy, float radius, paint paint) cx,cy為圓形的座標 radius:半徑

2.畫矩形 drawrect(float left, float top, float right, float bottom, paint paint) float left, float top, float right, float bottom 矩形四條變相對x軸y軸的距離,可替換為rectf

3.畫橢圓 drawoval 與畫 圓形同理

4.畫扇形 drawarc(rectf oval, float startangle, float sweepangle, boolean usecenter,paint paint) startangle:開始讀書,0位與 x軸平行 sweepangle:delta角度,順時針 usercenter :畫的形狀是否連線到圓形

5.畫點 drawpoint(float x, float y, paint paint)

6.畫線 drawline(float startx, float starty, float stopx, float stopy,paint paint)

drawlines(@size(multiple=4) float pts, paint paint) 每四個值分別作為 startx,starty,stopx,stopy.依次讀取出來進行畫線

7.畫路徑 drawpath(path) 其中有方法

path path = new path(); // 初始化 path 物件

第一組: add***() ——新增子圖形

如, addcircle(float x, float y, float radius, direction dir) 新增圓

addoval(float left, float top, float right, float bottom, direction dir)

addoval(rectf oval, direction dir) 新增橢圓

addrect(float left, float top, float right, float bottom, direction dir)

addrect(rectf rect, direction dir) 新增矩形

addroundrect(rectf rect, float rx, float ry, direction dir)

addroundrect(float left, float top, float right, float bottom, float rx, float ry, direction dir)

addroundrect(rectf rect, float radii, direction dir)

addroundrect(float left, float top, float right, float bottom, float radii, direction dir) 新增圓角矩形

addpath(path path) 新增另乙個 path

第二組:***to() ——畫線(直線或曲線)

1.lineto(x, y) 的引數是絕對座標,而 rlineto(x, y) 的引數是相對當前位置的相對座標 (字首 r 指的就是 relatively 「相對地」)。

2.quadto(float x1, float y1, float x2, float y2) / rquadto(float dx1, float dy1, float dx2, float dy2) 畫二次貝塞爾曲線

3.cubicto(float x1, float y1, float x2, float y2, float x3, float y3) / rcubicto(float x1, float y1, float x2, float y2, float x3, float y3) 畫三次貝塞爾曲線和上面這個 4.quadto() rquadto() 的二次貝塞爾曲線同理,cubicto() 和 rcubicto() 是三次貝塞爾曲線。

5.moveto(float x, float y) / rmoveto(float x, float y) 移動起點到目標位置

不論是直線還是貝塞爾曲線,都是以當前位置作為起點,而不能指定起點。但你可以通過 moveto(x, y) 或 rmoveto() 來改變當前位置,從而間接地設定這些方法的起點。

6.arcto(rectf oval, float startangle, float sweepangle, boolean forcemoveto)

7.arcto(float left, float top, float right, float bottom, float startangle, float sweepangle, boolean forcemoveto) / arcto(rectf oval, float startangle, float sweepangle) 畫弧形這個方法和 canvas.drawarc() 比起來,少了乙個引數 usecenter,而多了乙個引數 forcemoveto 。少了 usecenter ,是因為 arcto() 只用來畫弧形而不畫扇形,所以不再需要 usecenter 引數;而多出來的這個 forcemoveto 引數的意思是,繪製是要「抬一下筆移動過去」,還是「直接拖著筆過去」,區別在於是否留下移動的痕跡。

8.drawbitmap(bitmap bitmap, rect src, rectf dst, paint paint)

drawbitmap(bitmap bitmap, rect src, rect dst, paint paint)

畫圖 9.drawtext(string text, float x, float y, paint paint) 繪製文字

繪製基礎知識 canvas paint

canvas 用來提供draw方法的呼叫。繪製東西需要4個基本的組建 乙個bitmap用來存放畫素,乙個canvas用來提供draw方法的呼叫 往bitmap裡寫入 原始繪製元素 e.g.rect,path,text,bitmap 乙個paint。看一下canvas的主要方法 public clas...

js 方法記錄

現在被prototype,jquery等js框架搞得連基本的js都沒有學好。今天碰到乙個js,array的問題。下面就好好學習下array物件。concat 方法用於連線兩個或多個陣列。該方法不會改變現有的陣列,而僅僅會返回被連線陣列的乙個副本。語法arrayobject.concat arrayx...

PHP 方法記錄

半路由於公司需求得修改一些php程式。最近正在修改 其中遇到一些問題。也寫了幾個方法因此記錄下 function cutword str else 10 ret str.cn 11 ret str middle str.cn 12 13elseif strlen str 1 else 17 ret ...