自定义View--绘制

一、paint相关
Paint.setStyle(Style style) 设置绘制模式:实心(FILL)、空心(STROKE)
Paint.setColor(int color) 设置颜色
Paint.setStrokeWidth(float width) 设置线条宽度
Paint.setStrokeCap(int cap)  设置端点样式:圆头 (ROUND)、平头 (BUTT) 和方头 (SQUARE)
Paint.setTextSize(float textSize) 设置文字大小
Paint.setAntiAlias(boolean aa) 设置抗锯齿开关

二、Canvas.drawXXX()相关
1、填充颜色
Canvas.drawColor(int color)
Canvas.drawRGB(int r, int g, int b) 
Canvas.drawARGB(int a, int r, int g, int b)

2、画圆
Canvas.drawCircle(float centerX, float centerY, float radius, Paint paint)

3、画矩形
Canvas.drawRect(float left, float top, float right, float bottom, Paint paint) 
Canvas.drawRect(RectF rect, Paint paint)
Canvas.drawRect(Rect rect, Paint paint)

4、画点
Canvas.drawPoint(float x, float y, Paint paint) 
Canvas.drawPoints(float[] pts, Paint paint)
Canvas.drawPoints(float[] pts, int offset, int count, Paint paint) 

5、画椭圆
Canvas.drawOval(float left, float top, float right, float bottom, Paint paint)
Canvas.drawOval(RectF rect, Paint paint)

6、画线
Canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
Canvas.drawLines(float[] pts, Paint paint)
Canvas.drawLines(float[] pts, int offset, int count, Paint paint)

7、画圆角矩形
Canvas.drawRoundRect(float left, float top, float right, float bottom, float rx, float ry, Paint paint) 
Canvas.drawRoundRect(RectF rect, float rx, float ry, Paint paint)

8、画扇形
Canvas.drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint)  useCenter:是否连接圆心

9、画Bitmap
Canvas.drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
Canvas.drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint) 
Canvas.drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 
Canvas.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint)

10、画文字
Canvas.drawText(String text, float x, float y, Paint paint)

11、画自定义图形
Canvas.drawPath(Path path, Paint paint)

三、Path相关
1、Path.addXxx()相关
(1)添加圆
Path.addCircle(float x, float y, float radius, Direction dir)
(2)添加椭圆
Path.addOval(float left, float top, float right, float bottom, Direction dir)
Path.addOval(RectF oval, Direction dir) 
(3)添加矩形
Path.addRect(float left, float top, float right, float bottom, Direction dir)
Path.addRect(RectF rect, Direction dir) 
(4)添加圆角矩形
Path.addRoundRect(RectF rect, float rx, float ry, Direction dir)
Path.addRoundRect(float left, float top, float right, float bottom, float rx, float ry, Direction dir)
Path.addRoundRect(RectF rect, float[] radii, Direction dir)
Path.addRoundRect(float left, float top, float right, float bottom, float[] radii, Direction dir)
(5)添加另一个 Path
Path.addPath(Path path)
 
2、Path.xxxTo()相关
(1)画直线
Path.lineTo(float x, float y)  //相对(0, 0)
Path.rLineTo(float x, float y) //相对当前位置
(2)画二次贝塞尔曲线
Path.quadTo(float x1, float y1, float x2, float y2) 
Path.rQuadTo(float dx1, float dy1, float dx2, float dy2)
(3)画三次贝塞尔曲线
Path.cubicTo(float x1, float y1, float x2, float y2, float x3, float y3) 
Path.rCubicTo(float x1, float y1, float x2, float y2, float x3, float y3) 
(4)移动到目标位置
Path.moveTo(float x, float y) 
Path.rMoveTo(float x, float y)
(5)画弧形
Path.arcTo(RectF oval, float startAngle, float sweepAngle, boolean forceMoveTo) 
Path.arcTo(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean forceMoveTo) 
Path.arcTo(RectF oval, float startAngle, float sweepAngle) 

3、其他
(1)封闭当前图形
Path.close() 
(2)设置填充方式:EVEN_ODD、WINDING (默认值)、INVERSE_EVEN_ODD、INVERSE_WINDING
Path.setFillType(Path.FillType ft) 

自定义View--绘制