XCL-Charts基于Android原生Canvas來繪制各種圖表,使用簡便,定制靈活。它可以實現(xiàn)各種復雜的折線圖表蝌矛,但是網(wǎng)上的大多文章不夠詳細,像折線圖上的字體是可以根據(jù)不同手機分辨率進行動態(tài)配置的错英,可以用如下的代碼實現(xiàn)的:
int size = (25* ScreenUtils.getScreenHeight(mContext)) /1080;
chart.getCategoryAxis().getTickLabelPaint().setTextSize(size);
chart.getDataAxis().getTickLabelPaint().setTextSize(size);
這在畫圖時我走了不少的彎路入撒。
現(xiàn)在我用不平均點圖表(不平均點就是例如一天24個小時,但是數(shù)據(jù)是6點椭岩,8點有茅逮,其它點沒有,這兩個點需要直接連接判哥,但橫軸上其它點是沒有數(shù)據(jù)的献雅,橫軸上沒有數(shù)據(jù)的點依然標出來,不像平均點繪圖塌计,平均點繪圖橫軸上只顯示有數(shù)據(jù)的點)舉個例子
本例子按照在布局文件中自定義view的方式講解:
1.剛開始沒有數(shù)據(jù)挺身,創(chuàng)建完后需要這樣傳入dataSeriesTemp=newSplineData("",null,
Color.parseColor("#81c784"));這樣做的好處是右邊的標簽可以自己在布局文件上繪出。
2.等到有數(shù)據(jù)時可以使用dataSeriesTemp.setLineDataSet(linePoint);
this.invalidate();這個進行刷新锌仅。
本例采用mvp結(jié)構(gòu)章钾,ITemperatureData墙贱,ITemperatureDataImpl是實現(xiàn)數(shù)據(jù)接口的地方。ITemperatureView是view層傳遞參數(shù)的地方贱傀,mainactivity里面有個TemperatureDataPresenter來溝通view層和數(shù)據(jù)層的數(shù)據(jù)連接惨撇。詳細可以看代碼demo
效果如圖:
代碼下載地址:https://github.com/xtfgq/XclNofixedDemo.git