AChartEngine でこのように動作するようになりました (セットアップ、1 つのレンダラーを使用し、1 つのデータセットで、アクティブな変化するグラフです):
LinearLayout layout = (LinearLayout)findViewById(R.id.chart);
// setup dataset and renderer
dataset = new XYMultipleSeriesDataset();
renderer = new XYMultipleSeriesRenderer();
// configure renderer
renderer.setZoomEnabled(false, false);
renderer.setPanEnabled(false, false);
renderer.setYAxisMax(90);
renderer.setYAxisMin(0);
renderer.setXAxisMin(-1);
renderer.setBarSpacing(0.5);
renderer.setShowLegend(false);
renderer.setXLabels(0); // hides the default labels
renderer.setLabelsTextSize(15);
// create chart
mChartView = ChartFactory.getBarChartView(this, dataset, renderer, BarChart.Type.DEFAULT);
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// add some data, so the chart shows
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.rgb(192, 192, 192));
renderer.addSeriesRenderer(r);
XYSeries c = new XYSeries("");
c.add(0,0);
dataset.addSeries(c);
その後、もう一度レンダリングして活気を与えます (自分のコードからいくつかの部分を切り取ったことに注意してください。完全ではない可能性があります)。
// remove any bars that already exist
if (theAct.dataset.getSeriesCount() > 0) {
theAct.dataset.removeSeries(0);
}
XYSeries c = new XYSeries("");
// for some reason, the bar is very narrow, when only one bar is shown,
// when we use a negative spacing, the bar will be bigger
// i is the number of bars
if (i == 1) {
theAct.renderer.setBarSpacing(-0.8);
} else {
theAct.renderer.setBarSpacing(0.5);
}
// finish up and render!
theAct.renderer.setXAxisMax(i);
theAct.dataset.addSeries(c);
theAct.mChartView.zoomReset();
theAct.mChartView.repaint();