MPAndroidChart是Android平台上一款强大易用的图表库,支持线状图、柱状图、散点图等八种图表类型和缩放、拖动(平移)、选择等手势,还支持动画和高亮等功能。但是别人给好的功能毕竟只能满足一般功能,一个程序员最基本的能力就应该是根据需求做出自定义的功能了,这里我对MPAndroidChart进行一些改造,MPAndroidChart只能在节点绘制圆形,现在要给它加上绘制叉号的功能。另外,本来MPAndroidChart的背景只能设置整个一大块背景,现在我加上了按行设置背景色的功能。
效果如图:
节点的细节部分:
功能实现
继承LineChart
自定义LineChart的第一步是要继承LineChart,实现其构造方法。然后重写onDraw方法,在onDraw方法中,再绘制背景,绘制叉号,绘制图表。这里要注意绘制的顺序,从下到上,一层层叠加。
/**
* 重写onDraw方法,注意绘制顺序,先绘制背景色,再绘制叉号,最后绘制图表
* @param canvas
*/
@Override
protected void onDraw(Canvas canvas) {
drawBgColor(canvas);
drawCross(canvas);
super.onDraw(canvas);
Log.i(TAG, "onDraw");
}
画背景
为了让代码看起来更直观,我先创建了一个类BgColor,其中包含start,stop和color三个属性。
/**
* Created by xiaoniu on 2017/4/10.
* BgColor是设置背景的单位,创建时需要传入起点和终点的值,还有要设置的颜色
* 如要把纵坐标20-40的背景设为红色,就新建一个BgColor
* new BgColor(20,40,Color.RED)
*/
public cl