绘制弧度方法详解

先看下源码:
这里写图片描述
讲解下几个参数的意思:
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);
运行之后的结果就是这样的了:
这里写图片描述
看到不一样了吧!如果绘制的是实心的话,绘制的区域就不一样了,因为出发点事不一样的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值