使用xcl圖表庫(kù)簡(jiǎn)單實(shí)現(xiàn)android不平均點(diǎn)折線圖繪制

XCL-Charts基于Android原生Canvas來繪制各種圖表,使用簡(jiǎn)便,定制靈活。它可以實(shí)現(xiàn)各種復(fù)雜的折線圖表,但是網(wǎng)上的大多文章不夠詳細(xì),像折線圖上的字體是可以根據(jù)不同手機(jī)分辨率進(jìn)行動(dòng)態(tài)配置的,可以用如下的代碼實(shí)現(xiàn)的:

int size = (25* ScreenUtils.getScreenHeight(mContext)) /1080;

chart.getCategoryAxis().getTickLabelPaint().setTextSize(size);

chart.getDataAxis().getTickLabelPaint().setTextSize(size);

這在畫圖時(shí)我走了不少的彎路。

現(xiàn)在我用不平均點(diǎn)圖表(不平均點(diǎn)就是例如一天24個(gè)小時(shí),但是數(shù)據(jù)是6點(diǎn),8點(diǎn)有,其它點(diǎn)沒有,這兩個(gè)點(diǎn)需要直接連接,但橫軸上其它點(diǎn)是沒有數(shù)據(jù)的,橫軸上沒有數(shù)據(jù)的點(diǎn)依然標(biāo)出來,不像平均點(diǎn)繪圖,平均點(diǎn)繪圖橫軸上只顯示有數(shù)據(jù)的點(diǎn))舉個(gè)例子

本例子按照在布局文件中自定義view的方式講解:

1.剛開始沒有數(shù)據(jù),創(chuàng)建完后需要這樣傳入dataSeriesTemp=newSplineData("",null,

Color.parseColor("#81c784"));這樣做的好處是右邊的標(biāo)簽可以自己在布局文件上繪出。

2.等到有數(shù)據(jù)時(shí)可以使用dataSeriesTemp.setLineDataSet(linePoint);

this.invalidate();這個(gè)進(jìn)行刷新。

本例采用mvp結(jié)構(gòu),ITemperatureData,ITemperatureDataImpl是實(shí)現(xiàn)數(shù)據(jù)接口的地方。ITemperatureView是view層傳遞參數(shù)的地方,mainactivity里面有個(gè)TemperatureDataPresenter來溝通view層和數(shù)據(jù)層的數(shù)據(jù)連接。詳細(xì)可以看代碼demo

效果如圖:


代碼下載地址:https://github.com/xtfgq/XclNofixedDemo.git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容