在忙过一点时间项目需求后,我胡汉三又回来了。首先谢谢你们对我以前作的仪表盘图表的喜欢(手动乖巧),虽然我作的仍是有不少不足,可是大家让我有动力继续去尝试写些其余图表。android
首先附上传送门:git
Github传送门,内有详细APIgithub
仪表盘控件仿芝麻信用canvas
而后来看看此次带了什么东西:api
首先看下如何使用bash
首先在布局添加你须要的图表控件布局
<com.github.iron.chart.pie.PieView1
android:id="@+id/pie1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"/>
复制代码
而后给他设置数据,设置数据方法以下post
//设置数据 values:数据 name:名称 colors:颜色 anim:是否开启动画 (不设置颜色的话,颜色会随机)
setData(float[] values, boolean anim)
setData(float[] values, int[] colors, boolean anim)
setData(float[] values, String[] name, boolean anim)
setData(float[] values, String[] name, int[] color, boolean anim)
复制代码
若是有其余个性化的定制,能够查看目前的API是否知足需求或者本身去实现。动画
那如何实现一个属于本身的饼图,首先看一下在BasePieView
中有什么方法须要咱们去实现的:ui
protected abstract void initView();
protected abstract void initPieRect(float radius);
protected abstract void drawPieArc(Canvas canvas, String value,String percent, String name, int color, float arcStartAngle, float sweepAngle);
protected abstract void drawTitle(Canvas canvas,String title,String totalValue);
复制代码
而后让对一个个方法进行解析,首先initView()
和字面意思同样,就是进行数据和画笔初始化操做。
initPieRect(float radius)
初始化饼图的区域。
drawPieArc(Canvas canvas,String value, String percent, String name, int color, float arcStartAngle, float sweepAngle)
这个方法让咱们一个个参数的来看下,value
也就是进行格式化后的数值,percent
百分比,name
名称,color
颜色。能够根据本身需求绘制想要显示的数据。
drawTitle(Canvas canvas,String title,String totalValue)
绘制标题和总的数值,固然不想绘制的话能够忽略。
须要注意饼图控件的中心坐标为(0,0)
其实在BasePieView
里已经处理了不少逻辑,像我在Style1的饼图中,除去初始化方面的代码,绘制相关代码就10句不到。
其实在作这一块的时候,我在考虑是把他放在饼图控件里面仍是单独抽成一个控件好,到最后我仍是抽成了单独一个控件(虽然我如今也不肯定这样好很差),个人考虑是这样能够更方便进行位置或者显示相关配置。而这个控件我也提供了好比setColumnNumber(int number)
来控制列数等。