Paint方法總結(四):Path的應用
先對Path中的Api做一個簡單的介紹
moveTo(float x,float y):將路徑的繪制移動到指定的點,如果不調用該方法,則path的繪制起點默認是坐標原點
lineTo(float x,float y):路徑軌跡為上一個點和當前指定點之間的連線
rLineTo(float x,float y):表示相對于上一個點的位移距離,與lineTo不同的是,lineTo是表示軌跡移動到指定的點,而rLineTo表示的是,軌跡移動到是相對于上一個而言的,如果當前點的位置在(100,100),如果調用rLineTo(50,50)后,當前點的位置是在(150,150)的。
close():表示路徑軌跡是一個閉合的,即系統(tǒng)會自動將軌跡的最后一個點和起始點做一個連線,如果不調用則表示繪制的路徑軌跡不閉合
addArc(float left,float top,float right,float bottom,float startAngle, float sweepAngle):添加一個扇形軌跡
-
left,top,right,bottom這四個坐標表示扇形所在的矩形區(qū)域 -
startAngle:表示扇形繪制時的開始角度 -
sweepAngle:表示扇形掃過的角度,即扇形實際繪制的角度
關于這種添加還有很多方法,類似于addRect(... , Direction dir)添加一個矩形,addCircle(... ,Direction dir)添加一個圓形,addOval(... ,Direction dir)添加一個橢圓,前面的參數就是指定一些坐標點就不贅述了,后面的這個Direction是指的繪制方向,是個枚舉值CW順時針繪制,CCW逆時針繪制
mPath.arcTo(RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo):追加一個扇形,當前面已經畫好一個路徑后,需要在畫一個扇形,前面的參數跟之前介紹的一樣,這里主要介紹forceMoveTo,這是一個boolean類型的參數,如果為true,表示強制移動到當前追加的地方,如果為false,則會將上一個圖形的末尾點和追加的起點進行一個連線。效果參見下圖

addPath(Path):添加一個Path
addRoundRect(RectF rect, float rx, float ry, Direction dir):添加一個圓角矩形
-
rx,ry:x方向和y方向上的圓角半徑
quadTo(float x1, float y1, float x2, float y2):繪制二階貝塞爾曲線,x1、y1為控制點坐標,x2、y2為結束點坐標,在調用之前,需要調用moveTo()方法指定起始點,如果不調用,則默認起始點為坐標原點(0,0)
rQuadTo(float x1, float y1, float x2, float y2):繪制二階貝塞爾曲線,這里出入的坐標是相對于起始點而言的。
cubicTo(float x1, float y1, float x2, float y2,float x3, float y3):繪制三階貝塞爾曲線,x1、y1為第一個控制點的坐標,x2、y2為第二個控制點的坐標,x3、y3為結束點的坐標,起始點的指定與二階貝塞爾曲線一樣。
rCubicTo(float x1, float y1, float x2, float y2,float x3, float y3):繪制三階貝塞爾曲線,這里的坐標是相對于起始點而言的。