gpt4 book ai didi

安卓动态图表

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:05 24 4
gpt4 key购买 nike

嗨,Android 开发者, 目前我正在开发一个基于财务的图表应用程序,我在 jjoe64 博客的帮助下绘制图表。但现在我要实现实时图表。例如,一旦在服务器端进行了更改,图表就会每隔一秒或一分钟自动在表面绘制。任何人都可以执行这类任务吗?请帮我解决这个问题。

最佳答案

好的,我强烈推荐使用AChartEngine。它是免费的、轻量级的,并支持多种类型的图表、饼图、图表等。关于动态更新图表,我通过在单独的线程中添加值来实现这一点。这是我的例子,没什么特别的:

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 库。编码愉快!

关于安卓动态图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com