android下使用RChart画曲线图动态刷新
android下使用RChart画曲线图动态刷新
画曲线图的activity:
Java代码
importjava.io.IOException;
importjava.io.InputStream;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.util.Log;
importcom.java4less.rchart.Chart;
importcom.java4less.rchart.ChartAdapter;
importcom.java4less.rchart.ChartListener;
importcom.java4less.rchart.ChartLoader;
importcom.java4less.rchart.android.ChartPanel;
importcom.java4less.rchart.gc.android.ChartAndroidImage;
publicclassShowChartextendsActivity{
privateStringdata="";
privateintcishu=0;
privatestaticfinalintxnum=9;
ChartLoadercha=newChartLoader();
ChartPanelchartPanel;
publicvoidonCreate(Bundleicicle){
cha=newChartLoader();
//thisistobeabletoloadtheimages
ChartAndroidImage.assets=getAssets();
Stringchartfile=this.getIntent().getStringExtra("com.java4less.rchart.samples.file");
super.onCreate(icicle);
chartPanel=newChartPanel(this);
try{
chartPanel.setChart(loadFromAsset(chartfile));
}catch(Exceptione){
Log.e(ChartPanel.TAG,"Couldnotlodchartfromfile.",e);
}
setContentView(chartPanel);
}
protectedvoidonDestroy(){
if(chartPanel!=null)
if(chartPanel.getChart()!=null)chartPanel.getChart().stopUpdater();
super.onDestroy();
}
//createchartlistenerforthedrilldownchart曲线图的刷新方法
ChartAdapterchartAdapterRealtime=newChartAdapter(){
publicvoidchartEvent(Chartc,inttype){
//loadsubchart
if(type==ChartListener.EVENT_BEFORE_UPDATE)createRealtimedata(cha);
//设置刷新时间!!
c.msecs=1000;
}
};
publicChartloadFromAsset(Stringname)throwsIOException{
InputStreamis=getAssets().open(name);
cha.loadFromFile(is,true);
Log.i(ChartPanel.TAG,"Buildingchart...");
Chartc=cha.build(false,false);
//c.msecs=5000;在此处尝试设置刷新时间,失败!
c.addChartListener(chartAdapterRealtime);
c.startUpdater();
Log.i(ChartPanel.TAG,"Buildok");
returnc;
}
//刷新时调用该方法
privatevoidcreateRealtimedata(ChartLoaderloader){
//createchart
//setinitialvalueoftheXAxisbasedonthetime
java.util.Datenow=java.util.Calendar.getInstance().getTime();
java.text.Simpl