Android-EasyChart第二波饼图

本文介绍了如何创建并使用一个自定义的饼图控件,包括控件的基本使用方法及如何通过实现特定方法来自定义饼图样式。此外,还提供了一个用于展示数据的独立图表控件。

前言

在忙过一点时间项目需求后,我胡汉三又回来了。首先谢谢大家对我之前做的仪表盘图表的喜欢(手动乖巧),虽然我做的还是有很多不足,但是你们让我有动力继续去尝试写些其他图表。

首先附上传送门:

Github传送门,内有详细API

仪表盘控件仿芝麻信用

然后来看看这次带了什么东西:

如何使用

首先看下如何使用

首先在布局添加你需要的图表控件

<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)来控制列数等。

转载于:https://juejin.im/post/5b67f0b55188251aab715fd6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值