前言
网上有很多饼状图的控件,这里就只是简单实现一下,没有太多功能,代码量很少
正文
先把效果图亮出来给大家看一下,就只是一个非常简单的饼状图.
这里主要是在
onDraw(Canvas canvas)
方法里面用了canvas.drawArc
方法用来画弧形关键代码如下
RectF rectF = new RectF(0, 0, circleWidth, circleWidth);
canvas.drawArc(rectF, -90, 360, true, mPaint2);
- 这里是用来了一个
rectF
来构建矩形,然后才是画弧形,那么这个矩形到底是什么呢?
这里的弧形是矩形的内切圆,就是你矩形多大,那么你的矩形沿着边界的内切圆就是弧形360的呈现
首先,这里有四个参数
- 第一个参数是left,就是矩形距左的距离
- 第二个参数是top,同上,就是矩形距上的距离
- 第三个参数是right,right-left=矩形的宽度
- 第四个参数是bottom,bottom-top=矩形的高度
当我们设置RectF为RectF rectF = new RectF(0, 0, 200, 200);
时,那么我们显示的效果是如下这样
image.png
而我们的内切圆,效果如下
image.png
这个图片就是当我们的弧形设置成为360度之后白边以内呈现的效果
那我们再看canvas.drawArc(rectF, -90, 360, true, mPaint2);
方法,这就是画弧形的方法,这里有五个参数,五个参数的具体含义如下
- 第一个参数就是上面设置的那个矩形
-
第二个参数是弧形的起始角度,当我们设置为-90度的时候,下图红色部分就是起始角度
image.png - 第三个参数就是当前的角度,当设置成360度的时候就是一个圆
- 第四个参数是是否以圆心为中心点,
- 第五个参数是画笔
网友评论