前言
在忙过一点时间项目需求后,我胡汉三又回来了。首先谢谢大家对我之前做的仪表盘图表的喜欢(手动乖巧),虽然我做的还是有很多不足,但是你们让我有动力继续去尝试写些其他图表。
首先附上传送门:
然后来看看这次带了什么东西:
如何使用
首先看下如何使用
首先在布局添加你需要的图表控件
<com.github.iron.chart.pie.PieView1
android:id="@+id/pie1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_centerHorizontal="true"/>
复制代码
然后给他设置数据,设置数据方法如下
//设置数据 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中有什么方法需要我们去实现的:
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)来控制列数等。
本文介绍了如何创建并使用一个自定义的饼图控件,包括控件的基本使用方法及如何通过实现特定方法来自定义饼图样式。此外,还提供了一个用于展示数据的独立图表控件。
972

被折叠的 条评论
为什么被折叠?



