在画布上绘制路径之前,您如何稍等一下?

时间:2015-03-26 19:05:22

标签: java android canvas

我有一个根据扬声器当前拾取的振幅移动的波形,但是如果我很安静然后发出突然的噪声,波浪会立即“跳跃”到那个振幅,我想制作效果稍微渐进一点。我怎样才能完成这项任务?

我正在使用:

绘制波浪
Canvas.drawPath(path,paint);
path.reset();
invalidate();

全部在我的自定义onDraw的{​​{1}}方法中。因此,路径基本上是以麦克风当前拾取的任何振幅(具有限制)绘制的,这意味着如果拾取的振幅现在为100,然后突然跳跃到4000,则路径将“跳跃”显着好。

2 个答案:

答案 0 :(得分:0)

这实际上取决于你需要做什么。如果你想平滑你的路径,我建议你画一条曲线而不是一个角度的路径(你也可以用线条制作)。 否则,您可以使用睡眠来做同样的事情,因为整个过渡应该很小,以适应您收集数据的频率。

答案 1 :(得分:0)

我不认为添加睡眠是最佳解决方案,因为您可能会丢失您可能想要绘制的传入数据。我建议保存最后的x个样本,然后在传入的数据包中取平均值。因此,如果你在10点,而接下来的几个样本进入4000然后再回落,你的平均值就不会高了。如果它上升到4000并保持在那里,那么根据您的平均值,图表最终会在几个样本中上升到4000.