Androidは統計図AChartEngineを使用してデータを表示
5332 ワード
本明細書で使用する統計図の参照:AChartEngine
アクセス先:http://code.google.com/p/achartengine/
まず効果図を与える
本文の開発コードは主にこれらである:いくつかのコードを修正する
以下のファイルは公式ダウンロードをそのまま使用したものです
これらは主にファイル【WeightTimeChart.java】を修正したものです
どのように呼び出しますか?オブジェクトリファレンスが提供するdemoを先に取得する必要があります
このまま運転するとエラーが発生します
プロファイルにコードを追加する必要があります.
以上、AChartEngineの使い方について概説しました.提供されているAPIを見るのを忘れないでください.中にはいろいろな方法がありますよ.
アクセス先:http://code.google.com/p/achartengine/
まず効果図を与える
本文の開発コードは主にこれらである:いくつかのコードを修正する
以下のファイルは公式ダウンロードをそのまま使用したものです
これらは主にファイル【WeightTimeChart.java】を修正したものです
/**
* WeightTimeChart.java
* (C) 2013
* :cuiran 2013-10-24 4:11:28
*/
package com.cayden.weightnotes.achartengine;
import java.util.Date;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import com.cayden.weightnotes.util.VeDate;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
/**
* TODO
* @author cuiran
* @version 1.0.0
*/
public class WeightTimeChart extends AbstractDemoChart {
private static final int SERIES_NR = 1;
/* (non-Javadoc)
* @see com.cayden.weightnotes.achartengine.IDemoChart#getName()
*/
@Override
public String getName() {
// TODO Auto-generated method stub
return "WeightTimeChart";
}
/* (non-Javadoc)
* @see com.cayden.weightnotes.achartengine.IDemoChart#getDesc()
*/
@Override
public String getDesc() {
// TODO Auto-generated method stub
return "WeightTimeChart";
}
private XYMultipleSeriesDataset getDateDemoDataset() {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
final int nr = 7;
long value = new Date().getTime() - 3 * TimeChart.DAY;
Random r = new Random();
for (int i = 0; i < SERIES_NR; i++) {
TimeSeries series = new TimeSeries(" ");
series.add(VeDate.strToDate("2013-10-19"), 85.3);
series.add(VeDate.strToDate("2013-10-20"), 85.6);
series.add(VeDate.strToDate("2013-10-21"), 84.5);
series.add(VeDate.strToDate("2013-10-22"), 85.0);
series.add(VeDate.strToDate("2013-10-23"), 85.1);
series.add(VeDate.strToDate("2013-10-24"), 85.3);
series.add(VeDate.strToDate("2013-10-25"), 85.3);
series.add(VeDate.strToDate("2013-10-26"), 85.3);
// for (int k = 0; k < nr; k++) {
// series.add(new Date(value + k * TimeChart.DAY / 4), 20 + r.nextInt() % 100);
// }
dataset.addSeries(series);
}
return dataset;
}
private XYMultipleSeriesRenderer getDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(19);
renderer.setChartTitleTextSize(23);
renderer.setLabelsTextSize(18);
renderer.setLegendTextSize(18);
renderer.setPointSize(6f);
//in this order: top, left, bottom, right
renderer.setMargins(new int[] {20, 30, 15, 0});
XYSeriesRenderer r = new XYSeriesRenderer();
r = new XYSeriesRenderer();
r.setPointStyle(PointStyle.CIRCLE);
r.setColor(Color.GREEN);
r.setFillPoints(true);
renderer.addSeriesRenderer(r);
renderer.setAxesColor(Color.DKGRAY);
renderer.setLabelsColor(Color.LTGRAY);
renderer.setChartTitle(" ");
renderer.setXTitle(" ");
renderer.setYTitle(" (kg)");
renderer.setZoomButtonsVisible(true);
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
seriesRenderer.setDisplayChartValues(true);
}
return renderer;
}
/* (non-Javadoc)
* @see com.cayden.weightnotes.achartengine.IDemoChart#execute(android.content.Context)
*/
@Override
public Intent execute(Context context) {
// TODO Auto-generated method stub
return ChartFactory.getTimeChartIntent(context, getDateDemoDataset(), getDemoRenderer(), "yyyy-MM-dd");
}
}
どのように呼び出しますか?オブジェクトリファレンスが提供するdemoを先に取得する必要があります
private IDemoChart[] mCharts = new IDemoChart[] {new WeightDialChart(),
new WeightTimeChart()};
Intent intent=mCharts[1].execute(this);
startActivity(intent);
このまま運転するとエラーが発生します
プロファイルにコードを追加する必要があります.
以上、AChartEngineの使い方について概説しました.提供されているAPIを見るのを忘れないでください.中にはいろいろな方法がありますよ.