Android开发中如何使用achartengine绘制各种图表

来源:爱站网时间:2021-03-15编辑:网友分享
Android平台上的AchartEngine可以制作折线图、曲线图、直方图、饼图等等的图标,本文是爱站技术频道小编带给大家的Android开发中如何使用achartengine绘制各种图表,一起进入下文学习吧!

Android平台上的AchartEngine可以制作折线图、曲线图、直方图、饼图等等的图标,本文是爱站技术频道小编带给大家的Android开发中如何使用achartengine绘制各种图表,一起进入下文学习吧!

分享给大家供大家参考,具体如下:

1. ABarChart.java

package com.anjoyo.achartengine;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class ABarChart {
  public Intent execute(Context context) {
    return ChartFactory.getBarChartIntent(context, getBarChartDataset(), getBarChartRenderer(), Type.DEFAULT);
  }
  private XYMultipleSeriesRenderer getBarChartRenderer() {
    // TODO Auto-generated method stub
    XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();
    SimpleSeriesRenderer r;
    r=new SimpleSeriesRenderer();
    r.setColor(Color.BLUE);
    renderer.addSeriesRenderer(r);
    r=new SimpleSeriesRenderer();
    r.setColor(Color.GREEN);
    renderer.addSeriesRenderer(r);
    setBarChartRenderer(renderer);
    return renderer;
  }
  private void setBarChartRenderer(XYMultipleSeriesRenderer renderer) {
    // TODO Auto-generated method stub
    renderer.setChartTitle("Bar Chart");
    renderer.setXTitle("X Axis");
    renderer.setYTitle("Y Axis");
    renderer.setXAxisMax(10.5);
    renderer.setXAxisMin(0.5);
    renderer.setYAxisMax(210);
    renderer.setYAxisMin(0);
  }
  private XYMultipleSeriesDataset getBarChartDataset() {
    // TODO Auto-generated method stub
    XYMultipleSeriesDataset dataset=new XYMultipleSeriesDataset();
    final int SERIES_NR=2;
    final int NR=10;
    Random random=new Random();
    for (int i = 0; i 

2. ABubbleChart.java

package com.anjoyo.achartengine;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYValueSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class ABubbleChart {
  private final int SERIES_NR = 3;
  private final int NR = 20;
  public Intent execute(Context context) {
    return ChartFactory.getBubbleChartIntent(context,
        getBubbleChartDataset(), getBubbleChartRenderer(),
        "Bubble Chart Demo");
  }
  private XYMultipleSeriesRenderer getBubbleChartRenderer() {
    // TODO Auto-generated method stub
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    int[] linearColor = { Color.RED, Color.GREEN, Color.BLUE };
    XYSeriesRenderer r;
    for (int i = 0; i (key, value);
      r = new XYSeriesRenderer();
      r.setColor(linearColor[i]);
      r.setPointStyle(PointStyle.POINT);
      r.setLineWidth(2);
      renderer.addSeriesRenderer(r);
    }
    setBarChartRenderer(renderer);
    return renderer;
  }
  private XYMultipleSeriesDataset getBubbleChartDataset() {
    // TODO Auto-generated method stub
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
    for (int i = 0; i 

3. ALinearChart.java

package com.anjoyo.achartengine;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class ALinearChart {
  private final int SERIES_NR=3;
  private final int NR=20;
  public Intent execute(Context context) {
    return ChartFactory.getLineChartIntent(context, getLinearChartDataset(), getLinearChartRenderer(), "Linear Chart Another");
  }
  private XYMultipleSeriesRenderer getLinearChartRenderer() {
    // TODO Auto-generated method stub
    int[] linearColor={Color.RED, Color.GREEN, Color.BLUE};
    int[] belowLinearColor={Color.YELLOW, Color.CYAN, Color.GRAY};
    XYMultipleSeriesRenderer renderer=new XYMultipleSeriesRenderer();
    XYSeriesRenderer tempRender;
    for (int i = 0; i 

4. APieChart.java

package com.anjoyo.achartengine;
import org.achartengine.ChartFactory;
import org.achartengine.model.CategorySeries;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class APieChart {
  private double[] values = { 25, 30, 45 };
  public APieChart() {
    // TODO Auto-generated constructor stub
  }
  public APieChart(double[] values) {
    if (values.length == 3) {
      for (int i = 0; i 

5. MainActivity.java

package com.anjoyo.achartengine;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
  private Button lineChartBtn;
  private Button areaChartBtn;
  private Button scatterChartBtn;
  private Button timeChartBtn;
  private Button barChartBtn;
  private Button pieChartBtn;
  private Button bubbleChartBtn;
  private Button doughnutChartBtn;
  private Button rangeBarChartBtn;
  private Button dialChartBtn;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    lineChartBtn=(Button) findViewById(R.id.line_chart);
    areaChartBtn=(Button) findViewById(R.id.area_chart);
    scatterChartBtn=(Button) findViewById(R.id.scatter_chart);
    timeChartBtn=(Button) findViewById(R.id.time_chart);
    barChartBtn=(Button) findViewById(R.id.bar_chart);
    pieChartBtn=(Button) findViewById(R.id.pie_chart);
    bubbleChartBtn=(Button) findViewById(R.id.bubble_chart);
    doughnutChartBtn=(Button) findViewById(R.id.doughnut_chart);
    rangeBarChartBtn=(Button) findViewById(R.id.range_bar_chart);
    dialChartBtn=(Button) findViewById(R.id.dial_chart);
    OnClickListener listener=new AChartEngineListener();
    lineChartBtn.setOnClickListener(listener);
    pieChartBtn.setOnClickListener(listener);
    barChartBtn.setOnClickListener(listener);
    bubbleChartBtn.setOnClickListener(listener);
  }
  class AChartEngineListener implements OnClickListener{
    @Override
    public void onClick(View v) {
      // TODO Auto-generated method stub
      switch (v.getId()) {
      case R.id.line_chart:
//       Intent intent=new Intent(MainActivity.this, LinearChartActivity.class);
//       startActivity(intent);
        Intent linearChartIntent=new ALinearChart().execute(MainActivity.this);
        startActivity(linearChartIntent);
        break;
      case R.id.area_chart:
        break;
      case R.id.scatter_chart:
        break;
      case R.id.time_chart:
        break;
      case R.id.bar_chart:
        Intent barChartIntent=new ABarChart().execute(MainActivity.this);
        startActivity(barChartIntent);
        break;
      case R.id.pie_chart:
        Intent pieChartIntent=new APieChart().execute(MainActivity.this);
        startActivity(pieChartIntent);
        break;
      case R.id.bubble_chart:
        Intent bubbleChartIntent=new ABubbleChart().execute(MainActivity.this);
        startActivity(bubbleChartIntent);
        break;
      case R.id.doughnut_chart:
        break;
      case R.id.range_bar_chart:
        break;
      case R.id.dial_chart:
        break;
      default:
        break;
      }
    }
  }
}

6. LinearChartActivity.java

package com.anjoyo.achartengine;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
public class LinearChartActivity extends Activity {
  private XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
  private XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
  private XYSeries currentSeries;
  private XYSeriesRenderer currentRenderer;
  private String dateFormat;
  private GraphicalView chartView;
  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onRestoreInstanceState(savedInstanceState);
    dataset = (XYMultipleSeriesDataset) savedInstanceState
        .getSerializable("dataset");
    renderer = (XYMultipleSeriesRenderer) savedInstanceState
        .getSerializable("renderer");
    currentSeries = (XYSeries) savedInstanceState
        .getSerializable("current_series");
    currentRenderer = (XYSeriesRenderer) savedInstanceState
        .getSerializable("current_renderer");
    dateFormat = savedInstanceState.getString("date_format");
  }
  @Override
  protected void onSaveInstanceState(Bundle outState) {
    // TODO Auto-generated method stub
    super.onSaveInstanceState(outState);
    outState.putSerializable("dataset", dataset);
    outState.putSerializable("renderer", renderer);
    outState.putSerializable("current_series", currentSeries);
    outState.putSerializable("current_renderer", currentRenderer);
    outState.putString("date_format", dateFormat);
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.stock_chart);
    String seriesTitle = "上证指数";
    XYSeries series = new XYSeries(seriesTitle);
    dataset.addSeries(series);
    currentSeries = series;
    XYSeriesRenderer seriesRenderer = new XYSeriesRenderer();
    seriesRenderer.setColor(Color.BLUE);
    seriesRenderer.setFillBelowLine(true);
//   seriesRenderer.setFillBelowLineColor(Color.RED);//折线下面区域是否添加颜色
    seriesRenderer.setPointStyle(PointStyle.POINT);
    seriesRenderer.setLineWidth(3);
    renderer.addSeriesRenderer(seriesRenderer);
//   添加另外一条曲线图
//   seriesRenderer = new XYSeriesRenderer();
//   seriesRenderer.setColor(Color.GREEN);
//   seriesRenderer.setFillBelowLine(true);
//   seriesRenderer.setFillBelowLineColor(Color.YELLOW);
//   seriesRenderer.setPointStyle(PointStyle.POINT);
//   seriesRenderer.setLineWidth(3);
//   renderer.addSeriesRenderer(seriesRenderer);
    renderer.setYAxisMin(0);
    renderer.setYAxisMax(100);
    renderer.setXAxisMax(20);
    renderer.setShowGrid(false);
    renderer.setXLabels(20);
    renderer.setChartTitle("上证指数-24小时趋势图");
    currentRenderer = seriesRenderer;
    double x = 0;
    double y = 0;
    int[][] xyValues = getValues();
//   for (int i = 0; i 

7. AndroidManifest.xml

 

本文是爱站技术频道小编为大家带来的Android开发中如何使用achartengine绘制各种图表,大家学习的怎样了呢?更多专业知识,大家可来到js.aizhan.com学习哦。

上一篇:Android跳转到应用程序通知的设置操作

下一篇:Android开发中输入对话框的简单操作

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载