首页 > 移动平台 > 详细

安卓图表引擎AchartEngine

时间:2015-09-09 16:35:50      阅读:225      评论:0      收藏:0      [点我收藏+]

Refer to :http://blog.csdn.net/lk_blog/article/details/7645509

技术分享

Private List<double[]> x = new ArrayList<double[]>();

private List<double[]> values = new ArrayList<double[]>();

private double[] sinValues1 = new double[24];//用于储存曲线的24点取值

private double[] sinValues2 = new double[24];

private XYMultipleSeriesRenderer renderer;

private LinearLayout lineChartContainer;//2X-7X中声明图表容器的Layout.

?

for (int i = 0; i < titles.length; i++) {

x.add(new double[] { 0,1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

????????11, 12 ,13,14,15,16,17,18,19,20,21,22,23});

}

//List<double[]> values = new ArrayList<double[]>();

//double[] sinValues1 = new double[24];

//double[] sinValues2 = new double[24];

for (int i = 0; i < 24; i++)

????sinValues1[i]=Math.round((Math.sin((360/24)*i*Math.PI/180)*5)*100)/100.0;

for (int i = 0; i < 24; i++)

????sinValues2[i]=Math.round((Math.sin(((360/24)*i+90)*Math.PI/180)*5)*100)/100.0;

/**/

phase=6;

/******/

values.add(sinValues1);

values.add(sinValues2);

int[] colors = new int[] { Color.BLUE, Color.GREEN };

PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND };

renderer = buildRenderer(colors, styles);

int length = renderer.getSeriesRendererCount();

for (int i = 0; i < length; i++) {

((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);

}

setChartSettings(renderer, "Valtage", "step", "voltage", 0, 24, -6, 6, Color.LTGRAY, Color.LTGRAY);

renderer.setXLabels(24);

renderer.setYLabels(15);

renderer.setShowGrid(true);

renderer.setXLabelsAlign(Align.RIGHT);

renderer.setYLabelsAlign(Align.RIGHT);

renderer.setZoomButtonsVisible(true);

renderer.setPanLimits(new double[] { -10, 30, -20, 20 });

renderer.setZoomLimits(new double[] { -10, 30, -20,20 });

//renderer.setDisplayChartValues(true);

// renderer.setChartValuesTextSize(18);

View view = ChartFactory.getLineChartView(this, buildDataset(titles, x, values), renderer);

view.setBackgroundColor(Color.BLACK);

//setContentView(view);

lineChartContainer = (LinearLayout) findViewById(R.id.demo_linear_sin_chart);

lineChartContainer.addView(view);

?

private XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles) {

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

setRenderer(renderer, colors, styles);

return renderer;

}

private void setRenderer(XYMultipleSeriesRenderer renderer, int[] colors, PointStyle[] styles) {

renderer.setAxisTitleTextSize(16);

renderer.setChartTitleTextSize(20);

renderer.setLabelsTextSize(15);

renderer.setLegendTextSize(15);

renderer.setPointSize(5f);

renderer.setMargins(new int[] { 20, 30, 15, 20 });

int length = colors.length;

for (int i = 0; i < length; i++) {

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(colors[i]);

r.setPointStyle(styles[i]);

renderer.addSeriesRenderer(r);

}

}

private void setChartSettings(XYMultipleSeriesRenderer renderer,

????????String title, String xTitle, String yTitle, double xMin,

????????double xMax, double yMin, double yMax, int axesColor,

????????int labelsColor)

{

renderer.setChartTitle(title);

renderer.setXTitle(xTitle);

renderer.setYTitle(yTitle);

renderer.setXAxisMin(xMin);

renderer.setXAxisMax(xMax);

renderer.setYAxisMin(yMin);

renderer.setYAxisMax(yMax);

renderer.setAxesColor(axesColor);

renderer.setLabelsColor(labelsColor);

}

private XYMultipleSeriesDataset buildDataset(String[] titles, List<double[]> xValues, List<double[]> yValues) {

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

addXYSeries(dataset, titles, xValues, yValues, 0);

return dataset;

}

private void addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<double[]> xValues, List<double[]> yValues, int scale) {

int length = titles.length;

for (int i = 0; i < length; i++) {

XYSeries series = new XYSeries(titles[i], scale);

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

}

}

在values更新后,要将新values更新到图表,执行:

View view = ChartFactory.getLineChartView(MainActivity.this, buildDataset(titles, x, values), renderer);

view.setBackgroundColor(Color.BLACK);

lineChartContainer.removeAllViews();

lineChartContainer.addView(view);

安卓图表引擎AchartEngine

原文:http://www.cnblogs.com/zhlforhe/p/4794826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!