自定义View ---- 绘制圆弧

816 阅读1分钟

绘制一个从0度到90度的圆弧

//绘制
@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    //圆弧所在的椭圆对象。
    RectF rectF = new RectF(0, 0, viewWidth, viewHeight);
    //圆弧的起始角度
    int startAngle = 0;
    //圆弧的角度。
    int sweepAngle = 90;
    //是否显示半径连线
    boolean useCenter = false;
    //画笔
    Paint paint = new Paint();
    paint.setStyle(Paint.Style.STROKE);//线条
    paint.setColor(Color.BLUE);//颜色
    paint.setStrokeWidth(10);//线宽
    //绘制圆弧
    canvas.drawArc(rectF, startAngle, sweepAngle, useCenter, paint);
}

从0度到90度的圆弧效果图 从0度到90度的圆弧.jpg 然后我们再画一个“从0度到120度的圆弧” 我们只需要把sweepAngle由90改成120即可。 效果图如下:

从0度到120度的圆弧.jpg 通过以上图我们知道以下信息

image.png

如何理解RectF rectF = new RectF(0, 0, viewWidth, viewHeight);

翻译可知RectF是矩形的意思 我们观察RectF构造函数中 参数的名字:

image.png 也就是说RectF矩形通过四个参数left, top, right, bottom来描述一个矩形

image.png

  • left
    • 表示A边距离左边的距离
  • top
    • 表示B边距离上边的距离
  • right
    • 表示C边距离左边的距离
  • bottom
    • 表示D边距离上边的距离