AChartEngine小Demo,肯定能运行的。

照着网上的源码一句一句敲下来的,终于可以运行了。

下载AChartEngine,导入到工程。
可能出现java.lang.NoClassDefFoundError: org.achartengine.model.XYMultipleSeriesDataset这个问题,解决方案。


package com.example.chart;

import java.util.ArrayList;
import java.util.List;

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.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);		
		String[] titles = new String[]{"First" ,"Second"};
		List<double[]> x = new ArrayList<double[]>();
		List<double[]> y = new ArrayList<double[]>();
		x.add(new double[]{1 ,3 ,5 ,7 ,9 ,11});
		x.add(new double[]{0 ,2 ,4 ,6 ,8 ,10});
		y.add(new double[]{3 ,14 ,5 ,30 ,20 ,25});
		y.add(new double[]{18 ,9 ,21 ,15 ,10 ,6});
		XYMultipleSeriesDataset dataset = buildDataset(titles, x, y);
		
		int []colors = new int[]{Color.BLUE ,Color.GREEN};
		PointStyle[] styles = new PointStyle[]{PointStyle.CIRCLE ,PointStyle.DIAMOND};
		XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles, true);
		setChartSetting(renderer, "Line Chart Demo", "X", "Y", -1, 12, 0, 35, Color.WHITE, Color.WHITE);
		View Chart = ChartFactory.getLineChartView(this	, dataset, renderer);
		setContentView(Chart);
		
		
	}
	
	protected XYMultipleSeriesDataset buildDataset(String[] titles,
			List<double[]> xValues ,List<double[]> yValues){
		XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
		int length = titles.length;
		for(int i = 0 ;i < length ;i++){
			XYSeries series = new XYSeries(titles[i]);
			double [] xV = xValues.get(i);
			double [] yV = yValues.get(i);
			int seriesLength = xV.length;
			for(int k = 0 ;k < seriesLength ;k++){
				series.add(xV[k], yV[k]);
			}
			dataset.addSeries(series);
		}			
		return dataset;
	}

	protected XYMultipleSeriesRenderer buildRenderer(int[] colors ,
			PointStyle[] styles ,boolean fill){
		XYMultipleSeriesRenderer render = new XYMultipleSeriesRenderer();
		int length = colors.length;
		for(int i = 0 ;i < length ;i++){
			XYSeriesRenderer r = new XYSeriesRenderer();
			r.setColor(colors[i]);
			r.setPointStyle(styles[i]);
			r.setFillPoints(fill);
			render.addSeriesRenderer(r);
		}
		return render;
	}
	
	protected void setChartSetting(XYMultipleSeriesRenderer render ,String title ,
			String xTitle ,String yTitle ,double xMin ,double xMax ,double yMin ,
			double yMax ,int axesColor ,int labelsColor){
		render.setChartTitle(title);
		render.setXTitle(xTitle);
		render.setYTitle(yTitle);
		render.setXAxisMin(xMin);
		render.setXAxisMax(xMax);
		render.setYAxisMin(yMin);
		render.setYAxisMax(yMax);
		render.setAxesColor(axesColor);
		render.setLabelsColor(labelsColor);
		
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值