android下使用RChart画曲线图动态刷新
2011-03-23 10:31
239 查看
最近正在android上使用RChart画曲线图,由于数据要动态更新,所以要设置更新的时间间隔。摸索了很长时间,今天终于可以了。引用的assets都是RChart demo例子中的东西,我只是修改了刷新时间。RChart demo在我的资源里,关于动态显示数据,大家要记得在Listener里面添加时间的语句,例如:
createRealtimedata:获取数据
loadFromAsset:初始化曲线图
下载地址:http://download.csdn.net/detail/yonghumingshishenme/3118685
ChartAndroidImage.assets=getAssets(); chartPanel = new ChartPanel(view[i].getContext()); Chart chart=loadFromAsset("温度"); chart.addChartListener(new ChartAdapter() { @Override public void chartEvent(Chart c, int type) { // TODO Auto-generated method stub super.chartEvent(c, type); c.msecs=2000; if (type==ChartListener.EVENT_BEFORE_UPDATE) { createRealtimedata(cha,"8","temperature"); } if(type==ChartListener.EVENT_AFTER_UPDATE) { view[kk].postInvalidate();//我的这个rchart是在pupopwindow中显示的,所以要调用postInvalidate } } }); chart.startUpdater(); chartPanel.setChart(chart);
createRealtimedata:获取数据
private void createRealtimedata(ChartLoader loader,String id,String type) { Sensor sensor=WebserviceMethod.getSensorDataById(id); if(sensor!=null) { double zuigao=Double.parseDouble(sensor.getValueByType(type))+2; double pingjun=Double.parseDouble(sensor.getValueByType(type))-2; //右边为最新数据 maxData=maxData.substring(maxData.indexOf("|")+1)+"|"+zuigao; System.out.println(maxData); loader.setParameter("SERIE_DATA_1",maxData); avgData=avgData.substring(avgData.indexOf("|")+1)+"|"+pingjun; System.out.println(avgData); loader.setParameter("SERIE_DATA_2",avgData); }
loadFromAsset:初始化曲线图
public Chart loadFromAsset(String type) throws IOException { System.out.println("Creating loader ..."); cha.setParameter("WIDTH","300"); cha.setParameter("HEIGHT","250"); cha.setParameter("TITLECHART","节点"+type+"显示"); cha.setParameter("TITLE_FONT","Serif|BOLD|12"); cha.setParameter("YLABEL","摄氏度"); cha.setParameter("YSCALE_MIN","0"); cha.setParameter("TICK_INTERVALY","2");//Y轴两个小trick之间的距离, cha.setParameter("YAXIS_TICKATBASE","TRUE");//Y轴trick从0开始 cha.setParameter("XAXIS_GRID","0.2|0xffffff|DASHED"); cha.setParameter("YAXIS_GRID","0.2|0xffffff|DASHED"); cha.setParameter("GRIDY","TRUE");//仅在大trick处有网格 cha.setParameter("BIG_TICK_INTERVALX","1");//X轴两个大trick之间的小trick的数目 cha.setParameter("XAXIS_LABELS","1|2|3|4|5|6"); cha.setParameter("XAXIS_START_WITH_BIG_TICK","TRUE"); cha.setParameter("YAXIS_START_WITH_BIG_TICK","TRUE"); cha.setParameter("LEGEND_VERTICAL","false");//legend的显示方式,true为竖着显示 cha.setParameter("SERIE_1","最高值"); cha.setParameter("SERIE_2","平均值"); cha.setParameter("SERIE_FONT_1","Arial|PLAIN|8"); cha.setParameter("SERIE_FONT_2","Arial|PLAIN|8"); cha.setParameter("SERIE_COLOR_1","RED"); cha.setParameter("SERIE_COLOR_2","BLUE"); cha.setParameter("SERIE_STYLE_1","2|RED|LINE"); cha.setParameter("SERIE_STYLE_2","0.2|BLUE|LINE"); cha.setParameter("SERIE_POINT_1","true"); cha.setParameter("SERIE_POINT_2","true"); cha.setParameter("SERIE_POINT_COLOR_1","RED"); cha.setParameter("SERIE_POINT_COLOR_2","BLUE"); cha.setParameter("LEGEND_POSITION","BOTTOM"); cha.setParameter("LEFT_MARGIN","0.15"); cha.setParameter("RIGHT_MARGIN","0.05"); cha.setParameter("TOP_MARGIN","0.15"); cha.setParameter("BOTTOM_MARGIN","0.09"); cha.setParameter("CHART_BORDER","0.2|0x0|NORMAL"); cha.setParameter("CHART_FILL","0xeeffff"); cha.setParameter("CHART_LINKS_TARGET","_self"); cha.setParameter("SERIE_DATA_1",maxData); cha.setParameter("SERIE_DATA_2",avgData); Log.i(ChartPanel.TAG,"Building chart ..."); Chart c=cha.build(false,false); Log.i(ChartPanel.TAG,"Build ok"); return c; }
下载地址:http://download.csdn.net/detail/yonghumingshishenme/3118685
相关文章推荐
- android下使用RChart画曲线图动态刷新
- Android复习练习十一(ListView列表显示使用BaseAdapter以及ListView动态刷新)
- Android开发之可以动态刷新的显示数据的曲线图
- Android 一直不断动态刷新ui使用计时器TImer
- android实现gif动态图的使用
- android 自定义View 动态绘制曲线图
- Android使用TableLayout动态布局实例
- Android 使用Gradle动态生成多渠道的APK
- 【Android】使用代码动态创建布局
- 使用Jquery的局部刷新功能,实现菜单内容的动态切换
- 我使用AJAX技术制作的动态刷新网页和部分源代码
- Android 动态布局实践 - 使用FrameLayout
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之构建灵活的UI
- android 动态设置控件的高度,使用对应布局中的dp值
- 【Android - 框架】之刷新加载框架Ultra-Pull-To-Refresh的使用
- Android动态获取资源ID并使用javabean进行赋值
- android动态刷新媒体库
- Android下使用dlopen函数动态调用.so链接库
- Android使用addView动态添加组件
- Android在layout xml中使用ViewStub完成动态加载