Achartengine XYChart.toScreenPoint всегда возвращает исключение NULLPointerException - PullRequest
1 голос
/ 03 марта 2012

Я пытаюсь получить экранные координаты точек серии (AchartEngine) TimeChart, но метод toScreenPoint всегда возвращает мне NullPointerException.

Вот код:

TimeChart chart = new TimeChart(dataSet, renderer);
XYSeries serie = dataSet.getSeriesAt(0);

for(int u=0;u<serie.getItemCount();u++)
{
    double dy = serie.getY(u);
    double dx = serie.getX(u);

    double[] pos = chart.toScreenPoint(new double[]{dx,dy}, 0);
}

Что-то, что я должен инициализировать при создании экземпляра TimeChart?

1 Ответ

0 голосов
/ 26 марта 2012

Вот код для временного графика.Вам нужно отредактировать fillData с вашим собственным кодом.

private void chartView() {

        layout = (RelativeLayout) findViewById(R.id.graph);

        // create dataset and renderer
        mDataset = new XYMultipleSeriesDataset();
        mRenderer = new XYMultipleSeriesRenderer();
        mRenderer.setAxisTitleTextSize(16);
        mRenderer.setChartTitleTextSize(20);
        mRenderer.setLabelsTextSize(15);
        mRenderer.setLegendTextSize(15);
        mRenderer.setPointSize(3f);

        XYSeriesRenderer r = new XYSeriesRenderer();
        r.setColor(Color.CYAN);
        r.setPointStyle(PointStyle.DIAMOND);
        r.setFillPoints(true);
        mRenderer.addSeriesRenderer(r);
        mRenderer.setClickEnabled(true);
        mRenderer.setSelectableBuffer(20);
        mRenderer.setPanEnabled(true);

        time_series = new TimeSeries("Weight");

        mDataset.addSeries(time_series);

        fillData();

        mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer,
                "H:mm:ss");

        layout.addView(mChartView);
    }

private void fillData() {
    long value = new Date().getTime() - 3 * TimeChart.DAY;
    for (int i = 0; i < 100; i++) {
        time_series.add(new Date(value + i * TimeChart.DAY / 4), i);
    }
}

Надеюсь, это вам поможет!

...