我正在开发一个Android应用程序,我需要在其中创建一个频谱图(这是声音中频率频谱随时间变化的直观表示)。我有一个音频文件并使用FFT在频域有信号,现在我需要绘制频谱图。我需要一个API来帮助我绘制这个图表看起来像Matlab中的类似图表。任何建议?
答案 0 :(得分:1)
在适当大小的布局中声明一个空的<View>
元素,并且适合您要显示的内容。鉴于它的id为myview
。
实现您自己的类,该类可以从View查看并覆盖onDraw(Canvas canvas)
。我们将这个类命名为MyView。向该类添加任何方法,以便将数据传递给它(即FFT的结果)。
在您的活动的onCreate方法中,请致电findViewById(R.id.myview).setContentView(new MyView());
实现MyView.onDraw(),以便在画布上绘制数据可视化。如果数据发生更改,请在视图类上调用invalidate
方法强制重绘。
至于绘制什么,这取决于你。我想为每个频段都有一堆矩形或线条。 “真实”的一种颜色和“想象的”的另一种颜色。
答案 1 :(得分:1)