Android 阿卡捷宁重涂
我在webservice中有一个数据连接。在Assynctask中,我每5秒钟获取一次数据。 数据到达后,我制作了新的数据集,因为mChartView生活,我只是重新绘制。这就是我的问题。折线图重新绘制不会重新生成图表,只需在最后一个折线图的顶部绘制一个新的折线图即可。当然还有2-3分钟的月经期:( 这是我的代码:Android 阿卡捷宁重涂,android,charts,android-linearlayout,repaint,achartengine,Android,Charts,Android Linearlayout,Repaint,Achartengine,我在webservice中有一个数据连接。在Assynctask中,我每5秒钟获取一次数据。 数据到达后,我制作了新的数据集,因为mChartView生活,我只是重新绘制。这就是我的问题。折线图重新绘制不会重新生成图表,只需在最后一个折线图的顶部绘制一个新的折线图即可。当然还有2-3分钟的月经期:( 这是我的代码: class GetData extends AsyncTask<Void, String, Void> { private ArrayList<Strin
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");
}
}
}
class GetData扩展异步任务{
private ArrayList Alldata=new ArrayList();
公共数据集数据输出;
公共XY多址报告器MRenderOut;
@凌驾
受保护的空位背景(空位…未使用){
Alldata.clear();
Alldata=DataFromWeb.getChartDataNew(“&name=XXX”、“XXX”);
返回(空);
}
@凌驾
受保护的void onPostExecute(未使用的void){
datasetOut=CCChart.getDataSet(getBaseContext(),Alldata);
mRendererOut=CCChart.getrenderrotatic(getBaseContext());
Log.d(“调试”,“alldatasize:+Alldata.size());
Log.d(“调试”、“数据集”+datasetOut.getSeriesCount());
如果(mChartView!=null){
mChartView.repaint();
Log.v(“CC_trace”、“CCChartRepaint”);
}否则{
mChartView=ChartFactory.getLineChartView(getBaseContext(),datasetOut,MrenderOut);
layout.addView(mChartView,新的LayoutParams(
LayoutParams.WRAP_内容,getHeight());
Log.v(“CC_跟踪”、“CCChartGenerate”);
}
}
}
也许我没有在适当的位置调用repaint():)
图表图像
thx帮助…在我的帮助中,我从不叫重新油漆。我只是重新创造旧的 所以像这样:
@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");
}