我正在使用 achartengine 构建一个 android 实时加速度计绘图应用程序。我做了大量研究来解决我在下面提到的问题,但找不到任何可行的解决方案。
情况是这样的:我正在收集加速度计值并填充三个 XYSeries 对象(每个轴一个)。我使用 XYSeries 对象绘制具有三个时间序列的图形。我希望图表随着时间的流逝而实时滚动。所以我在 Activity 中使用不同的线程来更新图形,我正在更新 X-axis
然后调用
view_eeg1.repaint();
其中 view_eeg1
是 GraphicalView
类型
但是,当我每秒调用 repaint
方法超过 3 或 4 次时,GC_CONCURRENT
开始。In this thread Dan 正在讨论类似的问题,但我无法使其顺利进行。
此外,即使我忽略 GC_CONCURRENT
警告消息并尝试使用该应用程序,当我移动设备很多时,图表也会变得非常拥挤,应用程序崩溃。
那么,这里的主要问题是,当采样率和刷新率变高时,如何使用图表引擎进行实时绘图?
我希望我描述的问题足够详细,如果您需要更多信息,请告诉我。
最佳答案
一些可能有帮助的建议:
- 您可以使用 repaint(left, top, right, bottom) 仅重绘您知道已修改的图形部分,其中参数定义屏幕上必须重绘的矩形。
- 这可能有助于每隔一秒左右重新绘制一次。
- 这可能有助于删除一些旧值。您绝对不希望您的系列中有几千个值。
关于安卓实时绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17814668/