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);
             }

 

 

 

 

歐克出來了

相關文章
相關標籤/搜索