1

AChartEngine を使用して、数学的なグラフィックであるレイアウトにグラフィックをロードしようとしています。サイトからデモ zip をダウンロードしたところ、sin-cosin グラフ スタイルのようなものが必要であることがわかりました。だから、これは私が書いたコードです:

    package com.myproject;
    import org.achartengine.ChartFactory;
    import org.achartengine.GraphicalView;
    import org.achartengine.chart.PointStyle;
    import org.achartengine.model.XYMultipleSeriesDataset;
    import org.achartengine.renderer.XYMultipleSeriesRenderer;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Color;
    import android.view.View;
    import android.webkit.WebView;
    import android.widget.LinearLayout;
    import android.widget.LinearLayout.LayoutParams;
    import com.myproject.clases.AbstractDemoChart;

    public class MainActivity extends Activity {

private WebView ventana;
private GraphicalView mChartView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    XYMultipleSeriesDataset mDataset = null;//this line causes runtime error but I will see this issue later.
            int [] colors = new int[] { Color.BLUE, Color.CYAN };
        PointStyle[] styles = new PointStyle[] { PointStyle.POINT, PointStyle.POINT };
        XYMultipleSeriesRenderer mRenderer = buildRenderer(colors, styles);
    LinearLayout layout = (LinearLayout) findViewById(R.id.chart);      
    mChartView = ChartFactory.getLineChartView(this, mDataset, mRenderer);
    layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}
}

しかし、ライン

    XYMultipleSeriesRenderer mRenderer = buildRenderer(colors, styles);

メソッド buildRenderer() が AbstractDemoChart クラスに属しているため、コンパイル エラーが発生しています。別のクラスで使用する別のクラスからメソッドを取得するにはどうすればよいですか? これは、私が知っているオブジェクト プログラミングの基本的な質問かもしれませんが、グラフ チャートをレイアウトにロードする意図がうまくいっているかどうかを知るために、ここで質問しています。私はエクリプスで働いています。ありがとう

4

1 に答える 1

1

buildRendererのプロテクト メソッドですAbstractDemoChart。しかし、AChartExampleActivityサンプルbuildRendererでは、​​これを行うプライベート メソッドです。

private XYMultipleSeriesRenderer buildRenderer(int[] colors,PointStyle[] styles) 
    {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        setRenderer(renderer, colors, styles);
        return renderer;
    }

GeneratedChartDemoコードを見たことがありますか? この方法でレンダラーを作成します。

private XYMultipleSeriesRenderer getDemoRenderer() {

    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setAxisTitleTextSize(16);
    renderer.setChartTitleTextSize(20);
    renderer.setLabelsTextSize(15);
    renderer.setLegendTextSize(15);
    renderer.setPointSize(5f);
    renderer.setMargins(new int[] {20, 30, 15, 0}); 
    ...

を初期化する方法を変更する必要があると思いますXYMultipleSeriesRenderer

于 2013-05-18T20:08:43.000 に答える