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