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

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);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值