android.graphic.Path
類path是一個(gè)封裝的幾何學(xué)路徑包括直線,二次曲線,三次曲線。它可以通過(guò)函數(shù)canvas.drawPath(path, paint)畫(huà)出來(lái),可以通過(guò)填充方式或者畫(huà)線方式(由paint的style決定),也可以設(shè)置cliping或者把text畫(huà)在path上邊
Path.Direction
用來(lái)指定添加到path中的模型(比如方形,橢圓)的閉合方向,有兩個(gè)值
CCW?表示逆時(shí)針,CW?表示順時(shí)針
Path.FillType
Path會(huì)被填充的方法,有4個(gè)值
EVEN_ODD?,INVERSE_EVEN_ODD?,INVERSE_WINDING,WINDING?
public Path ()
創(chuàng)建一個(gè)空路徑
public Path (Path src)
創(chuàng)建一個(gè)路徑,將src里的內(nèi)容都復(fù)制到新路徑中
public void addArc (RectF oval, float startAngle, float sweepAngle)
將一段弧線加入到path中作為一個(gè)新的輪廓,該弧線由oval,startAngle,sweepAngle三者決定
public void addCircle (float x, float y, float radius, Path.Direction dir)
增加一個(gè)閉合的圓形到path中,dir表示閉合的方向
public void addOval (RectF oval, Path.Direction dir)
增加一個(gè)閉合的矩形到path中
public void addPath (Path src, float dx, float dy)
將src平移dx,dy后添加到path當(dāng)中
public void addPath (Path src)
將src添加到path當(dāng)中
public void addPath (Path src, Matrix matrix)
將src通過(guò)matrix變換后添加到Path當(dāng)中
public void addRect (float left, float top, float right, float bottom, Path.Direction dir)
增加一個(gè)閉合的矩形到path當(dāng)中
public void addRect (RectF rect, Path.Direction dir)
增加一個(gè)閉合的矩形到path當(dāng)中
public void addRoundRect (RectF rect, float[] radii, Path.Direction dir)
增加一個(gè)閉合的圓角矩形到path當(dāng)中,radii表示各個(gè)角的半徑點(diǎn)x,y,依次是左上角,右上角,右下角,左下角
public void addRoundRect (RectF rect, float rx, float ry, Path.Direction dir)
增加一個(gè)閉合的圓角矩形到path當(dāng)中,rx,ry表示各個(gè)角的半徑點(diǎn)
public void arcTo (RectF oval, float startAngle, float sweepAngle)
將一段圓弧連接到path當(dāng)中,如果path的最后一個(gè)點(diǎn)和圓弧的第一個(gè)點(diǎn)不一樣,那么就會(huì)先通過(guò)lineTo()將這兩個(gè)點(diǎn)連接起來(lái),然后再連接圓弧。當(dāng)然,如果path是空的,那就會(huì)調(diào)用moveTo()把path的第一個(gè)點(diǎn)移到圓弧的第一個(gè)點(diǎn)上來(lái)
public void arcTo (RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo)
同上,sweepAngle的值在應(yīng)用的過(guò)程中會(huì)到360求模,forceMoveTo如果是true,那么圓弧會(huì)一直顯示一個(gè)新的輪廓
public void close ()
關(guān)閉當(dāng)前輪廓,如果當(dāng)前點(diǎn)和該輪廓的第一個(gè)點(diǎn)不一樣,會(huì)自動(dòng)的用一條直接連接該兩點(diǎn)
public void computeBounds (RectF bounds, boolean exact)
計(jì)算path中控制的點(diǎn)的邊界,將結(jié)果寫入bounds中,如果Path中只有0或者1個(gè)點(diǎn),那么bounds會(huì)返回(0,0,0,0)的值,exact這個(gè)變量沒(méi)用
public void cubicTo (float x1, float y1, float x2, float y2, float x3, float y3)
從最后一個(gè)點(diǎn)開(kāi)始增加一段貝塞爾曲線到path當(dāng)中,接近(x1,y1),(x2,y2),同時(shí)在(x3,y3)中結(jié)束,如果這個(gè)輪廓沒(méi)有調(diào)用過(guò)moveTo(),那么將會(huì)以(0,0)作為起點(diǎn)
public Path.FillType getFillType ()
獲取path的填充方式,這定義了在內(nèi)部的計(jì)算方法,默認(rèn)值為WINDING
public void incReserve (int extraPtCount)
提示path將會(huì)增加extraPtCount個(gè)點(diǎn),這能使path有效率的分配它的存儲(chǔ)空間
public boolean isEmpty ()
查詢path是否為空(不包括任何直線,曲線)
public boolean isInverseFillType ()
判斷filltype是否為INVERSE中的一種
public boolean isRect (RectF rect)
如果path指定了一個(gè)矩形,那么返回true,并且rect將會(huì)存儲(chǔ)path的邊界值,如果沒(méi)有指定一個(gè)矩形,返回false,并且忽略掉rect
public void lineTo (float x, float y)
將path的最后一個(gè)點(diǎn)連接點(diǎn)(x,y),如果path還沒(méi)調(diào)用moveTo的話,將(0,0)點(diǎn)連接到(x,y)
public void moveTo (float x, float y)
設(shè)置下一個(gè)輪廓的第一個(gè)點(diǎn)
public void offset (float dx, float dy, Path dst)
將path平移dx,dy之后,將結(jié)果寫到dst中,如果dst為null,那么改變后的結(jié)果直接寫在當(dāng)前path中
public void offset (float dx, float dy)
同上,只不過(guò)就是dst=null的情形
public void quadTo (float x1, float y1, float x2, float y2)
增加一條二次的貝塞爾曲線到path的最后一個(gè)點(diǎn),接近(x1,y1),在(x2,y2)點(diǎn)結(jié)束。如果path沒(méi)有調(diào)用moveTo來(lái)確定第一個(gè)點(diǎn),那第一個(gè)點(diǎn)設(shè)置為(0,0)
public void rCubicTo (float x1, float y1, float x2, float y2, float x3, float y3)
跟cubicTo相同,但是參數(shù)里的這些點(diǎn)坐標(biāo)會(huì)被考慮當(dāng)前輪廓的相對(duì)位置
public void rLineTo (float dx, float dy)
public void rMoveTo (float dx, float dy)
public void rQuadTo (float dx1, float dy1, float dx2, float dy2)
跟去掉字母r的相對(duì)應(yīng)的函數(shù)一樣,但是都會(huì)考慮提供的點(diǎn)跟輪廓的相對(duì)位置
public void reset ()
清空Path的任何直線和曲線,讓它變成空,但是不會(huì)改變filltype
public void rewind ()
rewind當(dāng)前path,清除掉所有直線,曲線,但是保留它內(nèi)部的數(shù)據(jù)結(jié)構(gòu),以便更好的重新使用
public void set (Path src)
用src的值替代當(dāng)前path的值
public void setFillType (Path.FillType ft)
設(shè)置當(dāng)前path的filltype
public void setLastPoint (float dx, float dy)
設(shè)置當(dāng)前path的最后一個(gè)點(diǎn)
public void toggleInverseFillType ()
套住filltype的inverse狀態(tài)
public void transform (Matrix matrix, Path dst)
將path進(jìn)行matrix變化后,將結(jié)果保存到dst當(dāng)中,如果dst=null,將結(jié)果保存到當(dāng)前path當(dāng)中
public void transform (Matrix matrix)
同上,相當(dāng)于dst=null情形
轉(zhuǎn)載于:https://www.cnblogs.com/zhongle/p/4238992.html
總結(jié)
以上是生活随笔為你收集整理的android.graphic.Path的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: poj3252 组合数学
- 下一篇: shell -- shift用法