7
您好Android開發者, 目前我正在研究一個基於財務的圖表應用程序,並且我在jjoe64博客的幫助下繪製圖表。但現在我要實現實時圖表。例如圖表自動在表面上每秒或每分鐘一次在服務器端進行更改。任何一個都可以執行這些任務。請幫助我解決這個問題。Android動態圖表
您好Android開發者, 目前我正在研究一個基於財務的圖表應用程序,並且我在jjoe64博客的幫助下繪製圖表。但現在我要實現實時圖表。例如圖表自動在表面上每秒或每分鐘一次在服務器端進行更改。任何一個都可以執行這些任務。請幫助我解決這個問題。Android動態圖表
好吧,我強烈建議使用AChartEngine。它是免費的,重量輕,支持多種類型的圖表餅圖,曲線圖等。要動態地更新我在一個單獨的thread.Here增加值達到了這個圖表是我的榜樣,那是沒有任何幻想:
package my.pack;
import java.util.Date;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
public class ChartsActivity extends Activity {
private static Random random = new Random();
private static TimeSeries timeSeries;
private static XYMultipleSeriesDataset dataset;
private static XYMultipleSeriesRenderer renderer;
private static XYSeriesRenderer rendererSeries;
private static GraphicalView view;
private static Thread mThread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataset = new XYMultipleSeriesDataset();
renderer = new XYMultipleSeriesRenderer();
renderer.setAxesColor(Color.BLUE);
renderer.setAxisTitleTextSize(16);
renderer.setChartTitle("Time");
renderer.setChartTitleTextSize(15);
renderer.setFitLegend(true);
renderer.setGridColor(Color.LTGRAY);
renderer.setPanEnabled(true, true);
renderer.setPointSize(10);
renderer.setXTitle("Time");
renderer.setYTitle("Number");
renderer.setMargins(new int []{20, 30, 15, 0});
renderer.setZoomButtonsVisible(true);
renderer.setBarSpacing(10);
renderer.setShowGrid(true);
rendererSeries = new XYSeriesRenderer();
rendererSeries.setColor(Color.RED);
renderer.addSeriesRenderer(rendererSeries);
rendererSeries.setFillPoints(true);
rendererSeries.setPointStyle(PointStyle.CIRCLE);
timeSeries = new TimeSeries("Random");
mThread = new Thread(){
public void run(){
while(true){
try {
Thread.sleep(2000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
timeSeries.add(new Date(), random.nextInt(10));
view.repaint();
}
}
};
mThread.start();
}
@Override
protected void onStart() {
super.onStart();
dataset.addSeries(timeSeries);
view = ChartFactory.getTimeChartView(this, dataset, renderer, "Test");
view.refreshDrawableState();
view.repaint();
setContentView(view);
}
}
將自己的值添加到線程中。您可能需要查看如何使用AChartEngine庫。 快樂編碼!
我是初學者到android,並試圖做一個動態圖表應用程序。在你的例子中,我如何將你的代碼與ChartDemo.java集成起來 – Pankaj 2012-04-30 09:28:36
請更具體的說明你現在正在說些什麼。現在我切換到java EE,所以請更具體一些.... – Carolik 2012-04-30 10:46:15
還有一個非常棒的教程(在重用演示文件時特別有用):http://www.youtube.com/watch?v=E9fozQ5NlSo&feature=share&list=PL2603F3CABBF5EEB0 – hornetbzz 2012-09-23 15:28:43