canvas.drawArc画弧以及RectF四个参数解释

public void drawArc(RectF oval, float startAngle,   float sweepAngle, boolean useCenter, Paint paint) {
        throw new RuntimeException("Stub!");
    }

public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint) {
        throw new RuntimeException("Stub!");
    }

点进这个 drawArc 这个方法发现有两种写法,第一种是通过 RectF 来确定弧线的位置和大小,第二种是直接设置(第二种需要 API 21)。

这里我们主要说说第一个方法

参数1:RectF oval
首先来说说 RectF ,这里我们用它的四个参数的构造方法

public RectF(float left, float top, float right, float bottom) {
        throw new RuntimeException("Stub!");
    }

可以看到分别是四个方法想的值,现在就来解释解释这些个参数的意义。上一张图吧,更直观一些。
这里写图片描述

//每条线对应文字的颜色,left 和 right ,top 和 bottom 这两组的线其实是重叠在一起的,为了便于观察么我给分开了。
//所有线的位置都是应该在蓝色弧线宽度中间位置的(画图技术不行。。。)

应该很明直观吧,因为我写的参数 left 和 right, top 和 bottom 的差是相等的,所以是一个圆,这时圆的半径就是 right - left. 或者 bottom - top 。

public void drawArc(float left, float top, float right, float bottom, float startAngle, float sweepAngle, boolean useCenter, Paint paint) {
        throw new RuntimeException("Stub!");
    }

这时候第二个 drawArc 方法就应该很好理解了吧,就是对应的几个参数

参数二:float startAngle
这个参数的意义是弧线的起点的角度,下面分别是 0 和 90 的情况
这里写图片描述
这里写图片描述

参数三:sweepAngle
这个参数就是所画的弧线的长度。没什么可说的

参数四:useCenter
这个呢代表的是是否画出半径的意思(应该是叫半径吧,看图)
这里写图片描述

这里写图片描述

最后一个参数的就是画笔了,没什么可说的了
有个小问题需要注意的就是上面提到的四个位置距离都是以弧线款度中心点计算的
这里写图片描述

我把弧线宽度调成了 200,left 和 top 调成了 0. 应该看的很明显吧,拜拜。。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值