Achartengine riverniciare
-
26-10-2019 - |
Domanda
Ho una connessione dati a webservice. In Assynctask ottengo dati ogni 5 secondi. Dopo che i dati sono arrivati ??faccio nuovo set di dati e becuse il mChartView vivente ho appena ridipingo. E qui ritornassi il mio problema. Il grafico ridisegno linea si rigenera il grafico solo fare un nuovo top degli ultimi. E naturalmente 2-3 minuti fuori menmory: (
Ecco il mio codice:
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");
}
}
}
Forse im non chiama in buona posto il repaint ():)
thx l'aiuto ...
Soluzione
In mia non ho mai chiamo riverniciare. Ho appena ricreare il vecchio
in modo simile a questo:
@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");
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow