MPAndroidChart -- LimitLine的坑

很久没有写博客了,最近比较忙,项目中使用了MPAndroidChart,初次使用也比较蠢,不少API都得一个一个查,但有些时候当你想应该有这个API的时候他却没有,就好比今天的主角LimitLine 限制线,也叫基线。字体

这条绿色的线就是限制线。spa

基本使用方法就是:code

        LimitLine hightLimit = new LimitLine(high, name);
        hightLimit.setLineWidth(2f);  //设置线宽
        hightLimit.setTextSize(10f);   //设置限制线上label字体大小
        hightLimit.setLineColor(color); //设置线的颜色
        hightLimit.setTextColor(color);  //设置限制线上label字体的颜色
        hightLimit.setLabelPosition(labelPosition);//标签位置
        if(isDashedLine){
            hightLimit.enableDashedLine(5f,3f,0);  //设置虚线
        }else{
            hightLimit.disableDashedLine();
        }
        leftAxis.setDrawLimitLinesBehindData(true);  //这个很神奇开始看源码注释我有点懵逼,啥意思?看下文解释吧
        leftAxis.removeAllLimitLines(); //先清除原来的线,后面再加上,防止add方法重复绘制
        leftAxis.addLimitLine(hightLimit);
        mBarChart.invalidate();

 这个LimitLine 他是根据你 坐标轴来的。
blog

不少人可能会问了 这是什么意思?开发

来咱们根据上面的一步步分析rem

一.坑一 —— 限制线的添加get

 限制线的添加有如下三种    源码

     1.xAxis (横坐标)   博客

 

     2.leftAxis(左侧纵坐标)    it

     3.rightAxis(右侧纵坐标)

    咱们上面的代码中就是用的第2种,无论是哪一种添加的方式都是同样的,这里咱们以上方代码为例说明

leftAxis.addLimitLine(hightLimit);  //添加

   没错就是这么简单就添加了。

问题:这固然是有坑的,这个坑就是咱们的图表有时候并非不会刷新的,若是你长时间在这个页面刷新数据,那么你就会重复添加限制线,那么你就会看到你的线不停的重叠。

解决方案:每次刷新前先移除上一个存在的限制线

好比这样

leftAxis.removeLimitLine(LimitLine l)

 

若是你想偷懒还能够这样,清楚全部添加的线

leftAxis.removeAllLimitLines(); //先清除原来的线,后面再加上,防止add方法重复绘制

 

 

二.坑二 —— 限制线值太大的看不到

  对咱们的目标过高了,哈哈,说笑而已,日常是不会有这么高的目标线的,但有些时候工厂的目标就是高啊,没办法,别人要看到差距啊,做为开发人员能说不不不吗?显然不能。那么开始看看吧

咱们按照上面的代码添加限制线,固然限制线的值设为500而后惊奇的发现 咱们的目标线不宜而飞了....

哈哈,新手懵逼中,老手开始查找API中....真的惋惜没有关于限制API的方式给你,老手估计也开始另觅他发准备改动源码了,但改源码这个东西怎么说呢,生怕动一处坏全身。那么咱们的问题就来了。

 问题:限制线值太大的看不到,但愿查看到限制线并体现出柱状和目标的差距

 解决方案:这个方法就是围魏救赵,既然咱们限制线没有给你API那么咱们就想一想坐标能显示出500那么限制线就应该能出来了吧,咱们来看看有没有设置坐标的API,很开心咱们找到了 left.setAxisMaximum(500) 

 

             if(sStandard > maxNum) {
                //标准线过大的话 会图上看不到标准线,那么我就作个假的数据目标线显示出来,但让显示的数值是真实的值
                mBinding.barChart.getAxisLeft().setAxisMaximum(sStandard + 10);
             }

 

 

 

 

欧克出来了

相关文章
相关标签/搜索