現在、Android プロジェクトで ChartEngine ライブラリを使用しています。これまでのところうまく機能しています。私が理解できないことの1つは、最初に表示する方法です。データを表示する唯一の方法は、グラフのどこかをクリックしてパンするか、ズーム ボタンを押すことです。したがって、ズーム ボタンは最初に表示されますが、グラフ自体は表示されません。レンダラーのメソッドを検索しましたが、何も機能しませんでした。レンダラーが作成された後に呼び出すとmSeriesRenderer.setShowGrid(true);
、表示されません。私も試してみましたがrepaint()
、それでもうまくいきません。間違った時間に呼び出していますか?
public void onResume()
{
if(mMeterObs.getGraph() == null)
{
LinearLayout layout = (LinearLayout)findViewById(R.id.chart);
mMeterObs.setGraph(ChartFactory.getLineChartView(this, mMeterObs.getMultipleSeries(), mMeterObs.getSeriesRenderer()));
layout.addView(mMeterObs.getGraph(), LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
mMeterObs.repaint();
}
else
mMeterObs.repaint();
}
mMeterObs.getMultipleSeries()
とmMeterObs.getSeriesRenderer()
はどちらも最初は空ですが、それでもグリッドと軸を表示できるはずですよね?
のコンストラクターでmMeterObs
これを呼び出します。
mSeriesRenderer.setXLabels(12);
mSeriesRenderer.setYLabels(10);
mSeriesRenderer.setShowGrid(true);
mSeriesRenderer.setXLabelsAlign(Align.RIGHT);
mSeriesRenderer.setYLabelsAlign(Align.RIGHT);
mSeriesRenderer.setZoomButtonsVisible(true);
mSeriesRenderer.setRange(new double[] { 0.0, 10.0, -1.0, 1.0 });
//mSeriesRenderer.setPanEnabled(true);
mSeriesRenderer.setZoomLimits(new double[] { -10, 20, -10, 40 });
mSeriesRenderer.setGridColor(Color.LTGRAY);
mSeriesRenderer.setShowGrid(true);
mSeriesRenderer.setShowAxes(true);
mSeriesRenderer.setPointSize(.5f);