Achartengine перекрасить - PullRequest
       18

Achartengine перекрасить

0 голосов
/ 16 февраля 2012

У меня есть одно подключение для передачи данных в веб-сервисе.В Assynctask я получаю данные каждые 5 секунд.После получения данных я создаю новый набор данных и, потому что mChartView живу, я просто перекрашиваю.И тут приходит моя проблема.Перерисовка линейного графика не регенерирует график, просто сделайте одну новую вершину последней.И, конечно, 2-3 минуты из памяти: (

Вот мой код:

class GetData extends AsyncTask<Void, String, Void> {

    private ArrayList<String> Alldata = new ArrayList<String>();
    public XYMultipleSeriesDataset datasetOut;
    public XYMultipleSeriesRenderer mRendererOut;

    @Override
    protected Void doInBackground(Void... unused) {

        Alldata.clear();
        Alldata = DataFromWeb.getChartDataNew("&name=XXX", "XXX");

        return (null);
    }

    @Override
    protected void onPostExecute(Void unused) {


        datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
        mRendererOut = CCChart.getRendererPortrait(getBaseContext());


        Log.d("Debug", "alldatasize: " + Alldata.size());
        Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );

        if (mChartView != null) {
            mChartView.repaint();

            Log.v("CC_trace", "CCChartRepaint");

        } else {

            mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);

                layout.addView(mChartView, new LayoutParams(
                        LayoutParams.WRAP_CONTENT, getHeight()));

                Log.v("CC_trace", "CCChartGenerate");   

        }




    }



} 

Возможно, я не назову в хорошем месте перекрас ():)

Изображение диаграммы 1

Спасибо за помощь ...

1 Ответ

7 голосов
/ 21 февраля 2012

По моему я никогда не называю перекрасить. Я просто воссоздаю старую

вот так:

    @Override
    protected void onPostExecute(Void unused) {

    datasetOut = CCChart.getDataSet(getBaseContext(), Alldata);
    mRendererOut = CCChart.getRendererPortrait(getBaseContext());

    Log.d("Debug", "alldatasize: " + Alldata.size());
    Log.d("Debug", "dataset " + datasetOut.getSeriesCount() );

    mChartView = ChartFactory.getLineChartView(getBaseContext(), datasetOut , mRendererOut);

    layout.removeAllViews();
    layout.addView(mChartView, new LayoutParams(LayoutParams.WRAP_CONTENT, getHeight()));
    Log.v("CC_trace", "CCChartGenerate");   
}
...