绘制弧度方法详解

来源:互联网 发布:大数据access和mysql 编辑:程序博客网 时间:2024/06/05 05:05

先看下源码:
这里写图片描述
讲解下几个参数的意思:
RectF :这个参数定义了一个矩形,弧度就是在这个矩形里绘制的,弧度的半径就是在这个矩形里能够绘制的最大圆形的半径(注意:有可能是椭圆也可能是正圆,这取决于矩形本身)如下图的四个紫色的点:
这里写图片描述
其实你所要绘制的弧形也是根据这个最大圆形绘制的。
startAngle:这个参数就如字面意思,开始的角度。在图中我也标出了几个角度,顺序就是这个顺序!
sweepAngle :这个是你要绘制的角度,比如图中我就是绘制了一个90度的弧形!
useCenter 这个参数很重要,是否是在中心点的位置。如果为true则绘制的时候回从圆心到开始角度所在的位置绘制一条线条,如下图:
这里写图片描述
顺便贴下相关代码:
Paint paint = new Paint();
RectF rectF = new RectF(-200, -200, 200, 200);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setColor(Color.YELLOW);
canvas.drawRect(rectF, paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(4);
paint.setStyle(Paint.Style.STROKE);
canvas.drawArc(rectF, 0, 90, true, paint);

注意这句: canvas.drawArc(rectF, 0, 90, true, paint);
首先我设置useCenter为true,然后从0度的位置顺时针绘制90度就是现在的样子了!
如果将useCenter设置为false就变成了这样:
这里写图片描述
然后我再将上面的代码改成现在这样:
Paint paint = new Paint();
RectF rectF = new RectF(-200, -200, 200, 200);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setColor(Color.YELLOW);
canvas.drawRect(rectF, paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(4);
paint.setStyle(Paint.Style.FILL);
canvas.drawArc(rectF, 90, 90, false, paint);
canvas.drawArc(rectF, 0, 90, true, paint);
运行之后的结果就是这样的了:
这里写图片描述
看到不一样了吧!如果绘制的是实心的话,绘制的区域就不一样了,因为出发点事不一样的!

0 0
原创粉丝点击