Canvas----绘制常用的基本图形

来源:互联网 发布:sql查询多字段重复 编辑:程序博客网 时间:2024/05/23 10:33

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);
原创粉丝点击