0.MPAndroidChart简介(MPAndroidChar

2018-06-03  本文已影响0人  世界是一个圆_

MPAndroidChart是android上非常流行的一个图表类开源库,仓库地址如下:https://github.com/PhilJay/MPAndroidChart

最近公司要做BI相关的功能,调研了很多图标库,最终选中了这个开源库,由于产品的设计不同需要修改其中的源码,为了更好的修改源码,决定对其源码做一个详细的分析。
私以为分析源码的最好的方式就是大体看一遍源码后,仿照源码简单的实现一遍这个库,这里就是将柱状图进行了简单的实现,代码在此:https://github.com/wangzhen90/Simple-MPAndroidChart

下面我们简单的介绍一下这个库的结构

1.数据结构:

数据关系图.png

以BarChart为例,每一个BarChart含有一个BarData,BarData中包含了多个BarDataSet,每个BarDataSet包含一组BarEntry,BarEntry中持有每一个数据的xValue和yValue。

2.绘制类

绘制类就是多个Renderer类,比如BarRenderer类等,后面会详细介绍

3.工具类

工具类主要包含ViewPortHandler和Transformer这两个类,它们俩是作为中间人的角色,连接着Renderer,ChartView,TouchListener等。

4.简易的绘制流程图

绘制流程.png

需要注意的一点是,若是在Chart的onSizeChange执行完之后才设置了数据,需要调用invalidate,比如我们在延时之后再设置data:

new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        barChart.setData(data);
                        barChart.invalidate();
                    }
                });
            }
        },1000);
上一篇 下一篇

猜你喜欢

热点阅读