2

現在、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);
4

1 に答える 1

1

データ付きのシリーズを追加することをお勧めします。グリッドはラベルに沿ってのみ表示されますが、ラベルはありません。

于 2012-06-27T20:12:06.260 に答える