一.概述
MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。MPAndroidChart同样拥有常用的图表类型:线型图、饼图、柱状图和散点图。
GitHub地址:
https://github.com/PhilJay/MPAndroidChart
二.实例讲解
下面先以BarChart为例讲解一下在Chart类的基础上,开发者为BarChart准备的实例化好的组成部分。
经过前两篇文章的分析,我们知道一个基本的Chart实例应该是是有这么几部分组成的:
(1)DataRenderer(数据渲染器)
(2)Legend(图例)
(3)Axis(坐标轴)
(4)Listener(一开始我们分析,Chart类的监听器有两个,但是经过源码分析,我们得知Chart的基本监听器有三个)
(5)Animator:动画显示
(6)Data:图表数据(根源的数据怎么能忘记呢)
(7)MarkerView
(8)HighLighter(高亮覆盖显示)
(9)ViewPortHandler(暂时理解为绘图区域)
下面呢,我将以BarChart为例讲解Chart的这些基本组成部分都是怎么被具像化,怎么样工作的:
第一步我们来讲一下Chart的DataRenderer(数据渲染器)
首先我们看一下DataRenderer的主要成员变量和主要方法,DataRenderer是一个抽象类,他表明相对应于BarChart的BarChartDataRenderer需要继承复写他的方法,并且持有他的成员变量。
public abstract class DataRenderer extends Renderer {
protected ChartAnimator mAnimator;
protected Paint mRenderPaint;
protected Paint mHighlightPaint;
protected Paint mDrawPaint;
protected Paint mValuePaint;
//声明了图表动画,渲染器画笔,高粱画笔,数值画笔等成员变量
public DataRenderer(ChartAnimator animator, ViewPortHandler viewPortHandler) {
super(viewPortHandler);
this.mAnimator = animator;
//动画对象和绘图区域对象,并且将viewPortHandler和动画对象设定
mRenderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mRenderPaint.setStyle(Style.FILL);
mDrawPaint = new Pa