android下使用RChart画曲线图动态刷新
来源:互联网 发布:奥拉星盗号软件 编辑:程序博客网 时间:2024/06/09 23:53
画曲线图的activity:
Java代码
- import java.io.IOException;
- import java.io.InputStream;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import com.java4less.rchart.Chart;
- import com.java4less.rchart.ChartAdapter;
- import com.java4less.rchart.ChartListener;
- import com.java4less.rchart.ChartLoader;
- import com.java4less.rchart.android.ChartPanel;
- import com.java4less.rchart.gc.android.ChartAndroidImage;
- public class ShowChart extends Activity {
- private String data = "";
- private int cishu=0;
- private static final int xnum=9;
- ChartLoader cha=new ChartLoader();
- ChartPanel chartPanel;
- public void onCreate(Bundle icicle) {
- cha=new ChartLoader();
- // this is to be able to load the images
- ChartAndroidImage.assets=getAssets();
- String chartfile=this.getIntent().getStringExtra("com.java4less.rchart.samples.file");
- super.onCreate(icicle);
- chartPanel = new ChartPanel(this);
- try {
- chartPanel.setChart(loadFromAsset(chartfile));
- } catch (Exception e) {
- Log.e(ChartPanel.TAG,"Could not lod chart from file.",e);
- }
- setContentView(chartPanel);
- }
- protected void onDestroy() {
- if (chartPanel!=null)
- if (chartPanel.getChart()!=null) chartPanel.getChart().stopUpdater();
- super.onDestroy();
- }
- // create chart listener for the drill down chart曲线图的刷新方法
- ChartAdapter chartAdapterRealtime=new ChartAdapter() {
- public void chartEvent(Chart c,int type) {
- // load subchart
- if (type==ChartListener.EVENT_BEFORE_UPDATE) createRealtimedata(cha);
- //设置刷新时间!!
- c.msecs=1000;
- }
- };
- public Chart loadFromAsset(String name) throws IOException {
- InputStream is = getAssets().open(name);
- cha.loadFromFile(is, true);
- Log.i(ChartPanel.TAG,"Building chart ...");
- Chart c=cha.build(false,false);
- //c.msecs=5000;在此处尝试设置刷新时间,失败!
- c.addChartListener(chartAdapterRealtime);
- c.startUpdater();
- Log.i(ChartPanel.TAG,"Build ok");
- return c;
- }
- //刷新时调用该方法
- private void createRealtimedata(ChartLoader loader) {
- // create chart
- // set initial value of the X Axis based on the time
- java.util.Date now=java.util.Calendar.getInstance().getTime();
- java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("dd/MM/yy hh:mm:ss");
- loader.setParameter("XAXIS_INITIAL_DATE",formatter.format(now));
- //右边为最新数据
- java.util.Random r=new java.util.Random();
- if(cishu<xnum)
- {
- if (data.length()>0) data=data+ "|" ;
- data=data+r.nextInt(50);
- cishu++;
- }
- else
- {
- data=data.substring(data.indexOf("|")+1)+"|"+r.nextInt(50);
- }
- loader.setParameter("SERIE_DATA_1",data);
- }
- }
调用上面activity的类:
Java代码
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import android.app.ListActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import com.util.ShowChart;
- public class sensor extends ListActivity {
- //private static final String TAG = "J4LChartDemos";
- String[] examples={"combined2Positions.txt","patternFilling.txt","linechart.txt","barChart3D.txt","targetZones.txt","MultiCharts.txt","radarChart.txt","scatterChart.txt","areaChart.txt","areaCurves.txt","axisOnTop.txt","barChart.txt","barImages.txt","bubbleChart.txt","candleStick.txt",
- "combinedChart.txt","event.txt","gauge.txt","linechart3D.txt","linechartClipping.txt","linechartNULLS.txt",
- "pieChart2D.txt","piechart3D.txt","realtime.txt","stackedBar.txt",
- "StackedMultiAxis.txt","MultiAxis.txt"};
- String[] labels={"Combined","Curves and notes","Linechart","Barchart 3D (update)","Target zones","Multicharts","Radarchart","Scatterchart","Areachart","Curves","Axis on Top","Barchart","Bars and Images","BubbleChart","Candlestick",
- "Combined 2","Events","Gauge","Linechart 3D","Linechart & Clipping","Linechart and nulls",
- "Piechart 2D","Piechart 3D","Realtime","Stacked bars",
- "Stacked Multiaxis","MultiAxis"};
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
- for (int i=0; i<examples.length;i++)
- addItem(list, labels[i], activityIntent(examples[i]));
- setListAdapter(new SimpleAdapter(this,list,android.R.layout.simple_list_item_1,new String[] { "title" },new int[] { android.R.id.text1 }));
- }
- protected Intent activityIntent(String fileName) {
- Intent result = new Intent();
- result.setClass(this.getApplication(),ShowChart.class);
- result.putExtra("com.java4less.rchart.samples.file", fileName);
- return result;
- }
- protected void addItem(List<Map<String,Object>> data, String name, Intent intent) {
- Map<String, Object> temp = new HashMap<String, Object>();
- temp.put("title", name);
- temp.put("intent", intent);
- data.add(temp);
- }
- protected void onListItemClick(ListView l, View v, int position, long id) {
- Map map = (Map) l.getItemAtPosition(position);
- Intent intent = (Intent) map.get("intent");
- startActivity(intent);
- }
- }
- android下使用RChart画曲线图动态刷新
- android下使用RChart画曲线图动态刷新
- 使用AChartEngine画动态曲线图
- 使用AChartEngine画动态曲线图
- Android开发之可以动态刷新的显示数据的曲线图
- Android 绘制动态的曲线图
- 使用Jfreechart 在applet中画动态曲线图
- 使用Jfreechart 在applet中画动态曲线图
- android 画曲线图
- Android使用AchartEngine绘制曲线图
- android 自定义View 动态绘制曲线图
- 使用 Dojo 创建动态曲线图和图表
- Android使用Catmull_Rom插值算法画光滑曲线图
- c# 使用GDI+画曲线图
- vb使用picturebox画曲线图
- c# 使用GDI+画曲线图
- jfreechart在applet中画动态曲线图
- Android开发 绘制曲线图 AchartEngine使用
- 【zz】Wireshark抓包工具使用教程
- 2012.06.12写一个简单的FTP客户端
- 行进中的总结——我的大学
- #pragma data_seg
- Android 解析内存泄漏
- android下使用RChart画曲线图动态刷新
- 小小图书馆 - 一次程序作业 - C++控制台程序
- java 多线程,android 移动开发,日语学习,各项新闻RSS吐血分享
- 什么都不懂?不用怕!
- Ubuntu 12.04 Unity 3D 失效情况打救方法~~
- 作为一个曾经看不上javascript的人,我推荐大家开始学习js
- init suspiciously returned 19, it should follow 0/-En解决思路
- vw虚拟机下CentOS6.2用锐捷xrgsu或mentohust 认证上网
- ORACLE解决登陆em状态暂挂方法