【问题标题】:Android Real-Time PlottingAndroid 实时绘图
【发布时间】:2013-07-23 15:34:43
【问题描述】:

我正在使用 achartengine 构建一个 android 实时加速度计绘图应用程序。我做了大量研究来解决我在下面提到的问题,但找不到任何可行的解决方案。

情况是这样的:我正在收集加速度计值并填充三个 XYSeries 对象(每个轴一个)。我使用 XYSeries 对象来绘制具有三个时间序列的图形。我希望图表随着时间的推移而滚动。所以我在活动中使用不同的线程来更新图表,我正在更新X-axis,然后我正在调用

view_eeg1.repaint();

其中view_eeg1 的类型为GraphicalView

但是,当我每秒调用repaint 方法超过 3 或 4 次时,GC_CONCURRENT 就会启动。In this thread Dan 正在讨论类似的问题,但我无法使其顺利运行。

此外,即使我忽略GC_CONCURRENT 警告消息并尝试使用应用程序,当我移动设备很多 时,即图表变得非常拥挤,应用程序崩溃。

那么,这里的主要问题是,当采样和刷新率变高时,如何使用 achartengine 进行实时绘图?

我希望我对问题的描述足够详细,如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: android plot real-time accelerometer achartengine


    【解决方案1】:

    一些可能有帮助的建议:

    • 您只能使用 repaint(left, top, right, bottom) 重新绘制您知道已修改的图形部分,其中参数定义了屏幕上必须重新绘制的矩形。
    • 它可能有助于每秒左右重新绘制一次。
    • 它可能有助于删除一些旧值。您绝对不希望您的系列中有数千个值。

    【讨论】:

    • 感谢丹的回答。 1)随着时间的推移,整个图形必须重新绘制,尤其是 X 轴。 2)如果我这样做了,那么GC_CONCURRENT问题就解决了,但是运动一点也不顺畅。 3)我已经删除了旧值。每个XYSeries 仅包含最后 1000 个加速度计读数。 This 应用程序运行完美流畅,我认为它也使用了achartengine。我认为它使用HorizontalScrollView 来移动坐标轴,因此图表中的 pannin 不需要启用。
    猜你喜欢
    • 2018-09-28
    • 2015-11-04
    • 2017-03-23
    • 2014-12-04
    • 2019-02-13
    • 2016-03-28
    • 2014-09-07
    • 2019-02-02
    • 2018-08-30
    相关资源
    最近更新 更多