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://upload-images.jianshu.io/upload_images/2728091-71a8e896a6527a5c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

而我要的实际效果接近,但效果图如下:


DN}V$5FGCTJ~H2U3CRG@_OA.png

先不用在意我是多折线,塞数据的demo多条折线有提供思路,可以参照

对比

来先看一下对比图,如下:

![(RSLPJV7OPM]LPWHCTZT(QW.png](http://upload-images.jianshu.io/upload_images/2728091-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已经写好,可以直接修改就能用了。

后记

因最近加班超厉害,天天到夜里,周末也没休息,故答应作者的写一篇使用,一直拖到现在,我也只是用到了最基本的折线,所以篇文很少,但是代码都在上面,可以直接看懂,最主要的是作者因为我的一些需求,倒是修改了一些,暴露了一些,可制定的功能多了一些,而且作者的注释写的很详细,感谢作者。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,883评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,312评论 4 61
  • 一、MyBatis简介 1、MyBatis的优点 消除了大量的JDBC冗余代码 低学习曲线 友好的Spring集成...
    慕凌峰阅读 391评论 0 1
  • 信任是我们每个人都会的事情。信任是可以透过我们的允诺、承诺、情绪和自爱来制造、创造、建立、维持和延续的一个...
    婉缘阅读 503评论 0 0
  • 接触简书的时间不是很长,坦诚布公的讲,在这个APP泛滥的年代,随手下一个APP,完全是看那天下午你是不是与你喜欢的...
    卟识言阅读 341评论 0 4