AChartEngine实现Android实时时间变化曲线

AChartEngine实现Android实时时间变化曲线,第1张

概述话不多说先看效果图参考https://blog.csdn.net/s_best1987/article/details/8946759#  AChartEngine给我们提供了GraphicalView这个类,可以灵活的在任何位置插入图表,非常的方便。下面对相关类进行讲解:GraphicalView:图表控件,是一个基本类,也是一个容器控件,所有的图表都在

话不多说先看效果图

参考https://blog.csdn.net/s_best1987/article/details/8946759#

 

 

AChartEngine给我们提供了GraphicalVIEw这个类,可以灵活的在任何位置插入图表,非常的方便。

下面对相关类进行讲解:

GraphicalVIEw:图表控件,是一个基本类,也是一个容器控件,所有的图表都在此控件中呈现;

ChartFactory:工厂类,通过此类来构建不同的图表对象,比如lineChart(折线图)、CubelineChart(圆滑折线图)、PIEChart(饼图)等;

XYMultipleSerIEsDataset:数据集容器,在此类中存放多条曲线的数据集合

XYMultipleSerIEsRenderer:渲染器容器,此类初始化坐标系,网格,标题等,还用来存放多条曲线的渲染器

XYSerIEs:数据集,存放曲线的数据

XYSerIEsRenderer:渲染器,存放曲线的参数,比如线条颜色,描点大小等

好了 上代码:

linearLayout layout = (linearLayout)findVIEwByID(R.ID.chart);        //生成图表		chart = ChartFactory.getTimeChartVIEw(this, getDateDemoDataset(), getDemoRenderer(), "MM/dd HH:mm");		layout.addVIEw(chart, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT));		
private XYMultipleSerIEsDataset getDateDemoDataset() {		    dataset1 = new XYMultipleSerIEsDataset();		    		    long value = System.currentTimeMillis();//			try {//				value = format1.parse("2020-03-11 00:00:00").getTime();//			} catch (ParseException e) {//				// Todo auto-generated catch block//				e.printstacktrace();//			}			Date[] dd=new Date[nr];			for (int i = 0; i < nr; i++) {				dd[i]=new Date(value+1000*1800*i);			}		    Random r = new Random();		    for (int i = 0; i < SERIES_NR; i++) {		      serIEs1 = new TimeSerIEs("Demo serIEs ");		      for (int k = 0; k < nr; k++) {//		        serIEs1.add(new Date(value+k*1000*24*3600), 20 +r.nextInt() % 10);		    	serIEs1.add(dd[k], 20 +r.nextInt() % 10);			      		      }		      dataset1.addSerIEs(serIEs1);		    }		    Log.i(TAG, dataset1.toString());		    return dataset1;		  }

 

 private XYMultipleSerIEsRenderer getDemoRenderer() {		    XYMultipleSerIEsRenderer renderer = new XYMultipleSerIEsRenderer();//		    renderer.setChartTitle("实时曲线");//标题//		    renderer.setChartTitleTextSize(20);		    renderer.setAxisTitleTextSize(16);		    renderer.setAxescolor(color.BLACK);		    renderer.setLabelsTextSize(15);    //数轴刻度字体大小		    renderer.setLabelscolor(color.BLACK);		    renderer.setLegendTextSize(15);    //曲线说明		    renderer.setXLabelscolor(color.BLACK);		    renderer.setYLabelscolor(0,color.BLACK);		    renderer.setShowCustomTextGrID(true); // 设置X轴和Y轴网格是否显示.						renderer.setGrIDcolor(color.WHITE);// LTGRAY); //网格颜色,灰色			renderer.setmarginscolor(color.BLUE); // 设置四边颜色			renderer.setBackgroundcolor(color.WHITE); //设置中间背景色//					    renderer.setShowLegend(true);		    renderer.setmargins(new int[] {20, 30, 30, 0});		    XYSerIEsRenderer r = new XYSerIEsRenderer();		    r.setcolor(color.RED);		    r.setChartValuesTextSize(15);		    r.setPointStyle(PointStyle.CIRCLE);		    r.setFillBelowline(true);//		    r.setFillBelowlinecolor(color.WHITE);		    r.setFillPoints(true);		    renderer.addSerIEsRenderer(r);		    renderer.setPanEnabled(true, true);		    renderer.setShowGrID(true);		    renderer.setYAxisMax(50);		    renderer.setYAxisMin(-20);		    return renderer;		  }	   final int nr = 48;

 

时间曲线图的横坐标为时间轴,对齐要相应的处理。

 

文件上传在审核。后续修改源码地址。

总结

以上是内存溢出为你收集整理的AChartEngine实现Android实时时间变化曲线全部内容,希望文章能够帮你解决AChartEngine实现Android实时时间变化曲线所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存