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