我正在使用Achartengine创建一个LineChart,以特定的时间间隔绘制一些随机数据。
这是我的代码:
myPlotView = (MyPlotView)view.findViewById(R.id.myplotview);
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
XYSeries series = new XYSeries("Test Series");
dataset.addSeries(series);
multipleSeriesRenderer = new XYMultipleSeriesRenderer();
multipleSeriesRenderer.setChartTitle("Test Plot");
multipleSeriesRenderer.setXTitle("Number of Points");
multipleSeriesRenderer.setShowLegend(false);
multipleSeriesRenderer.setShowGrid(false);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.GREEN);
multipleSeriesRenderer.addSeriesRenderer(renderer);
myChart = new org.achartengine.chart.LineChart(dataset, multipleSeriesRenderer);
myPlotView.setChart(myChart);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
XYSeries series = myChart.getDataset().getSeriesAt(0);
int itemCount = series.getItemCount();
series.append(itemCount+1, (float)(Math.random() * 100));
myPlotView.repaint();
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t.start();
一切都很好,但有一个点大约500点,它突然停止渲染图表上的任何点,虽然x轴继续增加。
这一直持续到已经绘制的点到达中途:(http://i.stack.imgur.com/Jt4AI.png)
此时所有"缺失点"突然所有人都立刻被渲染到了屏幕上。 (http://i.stack.imgur.com/y5XJ9.png)
然后这种模式在情节的整个生命周期中持续。
这是预期的行为吗?反正有没有解决这个问题,以便点数总是在它们被添加时被渲染到图表中?
当它没有密谋时看起来真的很奇怪,因为看起来这个图表是"卡住了#34;。