使用AndroidPlot完成图表中大量数据点的绘制

时间:2015-04-13 12:07:10

标签: java android multithreading androidplot

我是AndroidPlot的新手。我试图使用AndroidPlot绘制如下所述的图形。

数据到我的图表:(此操作在后台线程完成)

  1. 通过采样频率连续从麦克风获取数据freq = 22050样本数= 1024

  2. 对获得的数据应用FFT,因此我有多组1024点

    每次我从麦克风读取数据时,上述数据都会发送到主线程(UI线程)

  3. 我的图表情节:(此图表绘制在主线程上完成)

    1. 每次在后台线程中读取数据时,它(FFT数据)都会更新为UI线程并且应该绘制(每次更新中有1024个点)

    2. 因此随着时间的推移,应该有一个移动的图表,在每个点显示1024点的FFT数据

      (即X轴是每次更新FFT数据到UI线程,      Y轴是1024点FFT数据)

    3. 目前尝试绘制图表的方法:

      创建SimpleXYSeries的新实例,用于存储1024点的每次更新,然后绘制图形。

      最终我需要在图表上显示大约100个更新,即 100 * 1024 点。在第100次更新后,我希望图表从左向右移动,在任何时间点显示100个更新。

      问题非常明显,因为要在图表上绘制大量的点,它会导致OutofMemoryException。我已经看到了以前类似问题的一些答案(在此链接中https://groups.google.com/forum/#!msg/androidplot/6Vte1F6Sid4/50NPQ1yFRFMJ) Nick建议不要使用SimpleXYSeries,并根据我们的需要实现XYSeries。所以我的问题如下:

      1. 是否可以通过实施XYSeries来实现上述图表(100 * 1024点)?

      2. 有人可以建议我以更好的速度和性能更好地实现此图表吗?也是实现我们自己的XYSeries

      3. 的一个例子

        我非常坚持这一点。感谢您的帮助。

0 个答案:

没有答案