Android的动态图 [英] Android Dynamic Chart

查看:251
本文介绍了Android的动态图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Android的喜开发商,      目前,我工作在一个金融为主的图表应用程序,我绘制图表的jjoe64博客的帮助。但现在我要实现的实时图表。例如图是在表面的每一个秒或分钟一次所做的更改在服务器端自动绘制。任何一个可以执行这些任务种类。请帮我对此。

Hi Android developers, Currently i am working on one Financial based chart application, and i draw the chart with the help of jjoe64 blog. but now i am going to implement real time chart. for example chart is draw automatically in the surface each and every second or a min once made changes in server side. can any one implement these kind of task. please help me regarding this.

推荐答案

好吧,我强烈建议您使用AChartEngine。它是免费的,重量轻,支持多种类型的图表饼图,曲线图等。由于有关动态更新图表我在一个单独的thread.Here增加值实现的,这是我的榜样,这是没有什么特别的:

Ok, I strongly recommend to use AChartEngine. It is free, lightweight and supports many types of charts pie, graph etc. As about to dynamically update the chart i achieved this by adding values in a separate thread.Here is my example,it is nothing fancy:

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

}

添加您自己的值到thread.You可能想如何使用AChartEngine库看看。 编码快乐!

Add your own values to the thread.You may want to take a look on how to use the AChartEngine library. Happy coding!

这篇关于Android的动态图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆