LChart中的折线图在项目中的简单使用
前言
首先感谢作者---linheimx
其项目原理--http://www.jianshu.com/p/d03ff80ad508
其项目github--https://github.com/linheimx/LChart
我当时使用的版本号--com.linheimx.library:lchart:1.1.4
特别感谢作者因为我的一些需求从1.1.0升级到1.1.4(当然,现在已经1.2.2了)
对照需求
首先拿到作者的demo,看基本效果图,如下:
![MV7DXDWZ]W{SV$R8ZT106HA.png](http:https://img.haomeiwen.com/i2728091/71a8e896a6527a5c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
而我要的实际效果接近,但效果图如下:
DN}V$5FGCTJ~H2U3CRG@_OA.png
先不用在意我是多折线,塞数据的demo多条折线有提供思路,可以参照
对比
来先看一下对比图,如下:
![(RSLPJV7OPM]LPWHCTZT(QW.png](http:https://img.haomeiwen.com/i2728091/368cfbd05625824b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
大致看出需要8处改动,其实x轴y轴可以视为一处,所对应的数据也可以视为一处
那我们现在就开始改动。
修改
1,2,3的修改,改变y轴单位,数据和颜色,字体大小,精准度,如果不想用单位,可以不用写
demo写法:
YAxis yAxis = lineChart.get_YAxis();
yAxis.set_unit("单位:m");
yAxis.set_ValueAdapter(new DefaultValueAdapter(3));// 默认精度到小数点后2位,现在修改为3位精度
改为
yAxis.set_unit("体重/kg");
yAxis.setUnitColor(color);//文字颜色
yAxis.setAxisColor(color);//轴线颜色
yAxis.set_ValueAdapter(new DefaultValueAdapter(1));//精度到小数点后1位
yAxis.setLabelTextSize(33);//单位字体大小(体重)
yAxis.setLabelColor(color);//单位颜色(体重)
4的修改同理,不做单独说明
5的修改明显不同,做了数据的处理显示
demo代码:
xAxis.set_ValueAdapter(new DefaultValueAdapter(0));
改为作者的自定义方法:
xAxis.set_ValueAdapter(new IValueAdapter() {
@Override
public String value2String(double value) {
// if (value < 0) {
// return "";
// } else
if (value % 12 == 0) {
if (value == 0) {
return "出生";
}
return (int) value / 12 + "岁";
} else if (value % 12 == 6) {
if (value % 12 == 6 && value < 12) {
return "半岁";
}
return (int) value / 12 + "岁半";
}
return (int) value + "月";
}
});
6,8的改变就是去除点,折线的宽度,颜色
demo代码:
// 高亮
HighLight highLight = lineChart.get_HighLight();
highLight.setEnable(true);// 启用高亮显示 默认为启用状态
修改为:
line.setLineWidth(5);//折线的粗细
line.setDrawCircle(false);//折线是否显示大圆点
line.setLineColor(color);//折线的颜色
7的改变就是,我不想显示轴负值,故让作者暴露了设置约束视图的肥胖因子的方法
lineChart.get_MappingManager().setFatFactor(1.1f);
至此,修改基本完成,剩下的就是显示本地数据和网络数据的问题,demo已经写好,可以直接修改就能用了。
后记
因最近加班超厉害,天天到夜里,周末也没休息,故答应作者的写一篇使用,一直拖到现在,我也只是用到了最基本的折线,所以篇文很少,但是代码都在上面,可以直接看懂,最主要的是作者因为我的一些需求,倒是修改了一些,暴露了一些,可制定的功能多了一些,而且作者的注释写的很详细,感谢作者。