2012-01-16 30 views
7

Merhaba Android geliştiricileri, Şu anda bir Finansal tabanlı grafik uygulaması üzerinde çalışıyorum ve jjoe64 blog yardımıyla grafik çiziyorum. ama şimdi gerçek zaman çizelgesini uygulayacağım. Örneğin, grafik, sunucu tarafında değişiklik yaptıktan sonra her bir saniyede bir otomatik olarak çizilir. Herhangi biri bu tür bir görevi gerçekleştirebilir. lütfen bana bu konuda yardımcı olun.Android Dinamik Tablo

cevap

11

Tamam, AChartEngine'i kullanmanız önerilir.

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);  
} 

} 
: Bu ücretsiz hafiftir ve çizelgeleri pasta, grafiğin vb dinamik benim örnektir i ayrı thread.Here değerleri ekleyerek bu elde grafiği güncellemek için şöyle hakkında birçok türlerini destekler, fantezi bir şey değildir

Kendi değerlerinizi konuya ekleyin. AChartEngine kitaplığının nasıl kullanılacağına göz atmak isteyebilirsiniz. Mutlu kodlama!

+1

Android için yeni bir başlangıç ​​yapıyorum ve dinamik bir grafik uygulaması yapmaya çalışıyorum. Örneğinizde, kodunuzu ChartDemo.java ile nasıl bütünleştirebilirim? – Pankaj

+1

Şimdi ne demek istediğimi biraz daha kesinleştirin. Şimdi java EE'ye geçtim, bu yüzden lütfen daha spesifik olunuz .... – Carolik

+2

Ayrıca, gerçek bir harika öğretici de var. Burada aynı konu (özellikle demo dosyalarını yeniden kullanırken yararlıdır): http://www.youtube.com/watch?v=E9fozQ5NlSo&feature=share&list=PL2603F3CABBF5EEB0 – hornetbzz

İlgili konular