1.绘制圆形
public void drawCircle(float cx, float cy, float radius, Paint paint)
参数分别为:圆心x坐标、圆心y坐标、半径、绘制的画笔。
public void initPaint()
{
mPaint=new Paint();
mPaint.setColor(Color.RED);
mPaint.setAntiAlias(true);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(3);
mPaint.setTextSize(50);
}
canvas.drawCircle(200,200,200,mPaint);
2.绘制线条
单条线条:起点x坐标、起点y坐标、终点x坐标、终点y坐标、绘图画笔
多条线条:点坐标数组、(偏移量、取值数目(4的倍数))、绘图画笔
public void drawLine(float startX, float startY, float stopX, float stopY,Paint paint)
public void drawLines(float[] pts, int offset, int count,Paint paint)
public void drawLines(float[] pts, Paint paint)
//绘制线条
canvas.drawLine(0,1000,300,1000,mPaint);
float []pots={0,1050,300,1050,300,1050,300,1300};
canvas.drawLines(pots,mPaint);
canvas.drawLines(pots,0,4,mPaint);
3.绘制弧线
方法一:API21以及以上才可以使用 绘制区域的左上右下坐标、起始度数、是否需要中心连线、绘图画笔
方法二:提供一个绘制弧线的矩形、起始度数、是否需要中心连线、绘制画笔
public void drawArc(float left, float top, float right, float bottom, float startAngle,float sweepAngle, boolean useCenter,Paint paint)
public void drawArc(RectF rectF, float startAngle,float sweepAngle, boolean useCenter,Paint paint)
//绘制弧线 绘制弧线的区域、开始的角度、扫描的角度、是否useCenter、绘制的画笔
RectF rectF=new RectF(0,550,300,700);
canvas.drawArc(rectF,0,360,true,mPaint);
//canvas.drawArc(0,550,300,700,0,360,true,mPaint); API大于等于21时,使用
4.绘制矩形
绘制矩形提供了四种方法:
public Rect(Rect r)
public Rect()
public Rect(RectF rectF)
public Rect(float left,float top,float right,float bottom)
//绘制矩形
canvas.drawRect(500,500,1000,700,mPaint);
Rect rect=new Rect(50,50,400,200);
canvas.drawRect(rect,mPaint);
RectF rectF2=new RectF(500,800,1000,1000);
canvas.drawRect(rectF2,mPaint);
//绘制圆角矩形
//canvas.drawRoundRect(1600,1300,1800,1400,25,25,mPaint); //API大于等于21时候,使用
RectF rectF3=new RectF(50,800,650,1100);
canvas.drawRoundRect(rectF3,25,25,mPaint);
5.绘制圆角矩形
public void drawRoundRect(RectF rect, float rx, float ry, Paint paint)
public void drawRoundRect(float left,float top,float right,float bottom,float rx,float ry,Paint paint)
//canvas.drawRoundRect(1600,1300,1800,1400,25,25,mPaint); //API大于等于21时候,使用
RectF rectF3=new RectF(50,800,650,1100);
canvas.drawRoundRect(rectF3,25,25,mPaint);
6.绘制点
绘制点有三个方法,和绘制直线的方法有点像,数组 提供的值必须是2的倍数。
public void drawPoint(float x, float y,Paint paint)
public void drawPoints(float[] pts,Paint paint)
public void drawPoints(float[] pts, int offset, int count,Paint paint)
canvas.drawPoint(50,50,mPaint);
float []points={50,100,100,100,150,100,200,100,250,100,300,100};
canvas.drawPoints(points,mPaint);
float []points2={50,150,100,150,150,150,200,150,250,150,300,150};
canvas.drawPoints(points2,0,6,mPaint);