我是 android 新手,正在尝试学习在 android 中创建或绘制图形。我遇到了2个图书馆:
- 图形视图
- 安卓绘图。
我的意图是接收一些声音文件并将其绘制在图表上。因此,为此目的,哪个库会更好。我还想知道,在哪里可以看到这些库的完整实现或定义,即上述库中使用的 API 的结构和代码。
我还尝试了一些网上可用的示例代码。但我正在寻找可以在 eclipse ADT 上开发的更复杂的代码,因此可以从中学到一些东西。
我是 android 新手,正在尝试学习在 android 中创建或绘制图形。我遇到了2个图书馆:
我的意图是接收一些声音文件并将其绘制在图表上。因此,为此目的,哪个库会更好。我还想知道,在哪里可以看到这些库的完整实现或定义,即上述库中使用的 API 的结构和代码。
我还尝试了一些网上可用的示例代码。但我正在寻找可以在 eclipse ADT 上开发的更复杂的代码,因此可以从中学到一些东西。
我的意图是接收一些声音文件并将其绘制在图表上
默认情况下,这两个库都不这样做。这些库用于在给定一组数据点的情况下绘制图表。从声音文件中获取数据点由您决定。
因此,为此目的,哪个库会更好。
获得数据点后,任何一个库都应该没问题。
我还想知道,在哪里可以看到这些库的完整实现或定义,即上述库中使用的 API 的结构和代码。
查看GraphView和AndroidPlot的源代码。
我用过Achartengine几次,效果很好。我修改它没有困难。
如果您正在使用画布绘制简单的折线图来绘制图形。
使用安卓绘图。此代码绘制 Vector 的内容(在本例中填充零)。您只需要将 wav 文件的信息传递给向量。你可以检查这个线程的阅读问题。 Android:读取 wav 文件并显示其值
plot = (XYPlot) findViewById(R.id.Grafica);
plot.setDomainStep(XYStepMode.INCREMENT_BY_VAL, 0.5);
plot.setRangeStep(XYStepMode.INCREMENT_BY_VAL, 1);
plot.getGraphWidget().getGridBackgroundPaint().setColor(Color.rgb(255, 255, 255));
plot.getGraphWidget().getDomainGridLinePaint().setColor(Color.rgb(255, 255, 255));
plot.getGraphWidget().getRangeGridLinePaint().setColor(Color.rgb(255, 255, 255));
plot.getGraphWidget().setDomainLabelPaint(null);
plot.getGraphWidget().setRangeLabelPaint(null);
plot.getGraphWidget().setDomainOriginLabelPaint(null);
plot.getGraphWidget().setRangeOriginLabelPaint(null);
plot.setBorderStyle(BorderStyle.NONE, null, null);
plot.getLayoutManager().remove(plot.getLegendWidget());
plot.getLayoutManager().remove(plot.getDomainLabelWidget());
plot.getLayoutManager().remove(plot.getRangeLabelWidget());
plot.getLayoutManager().remove(plot.getTitleWidget());
//plot.getBackgroundPaint().setColor(Color.WHITE);
//plot.getGraphWidget().getBackgroundPaint().setColor(Color.WHITE);
plot.setRangeBoundaries(-25, 25, BoundaryMode.FIXED);// check that, these //boundaries wasn't for audio files
InicializarLasVariables();
for(int i=0; i<min/11;i++){
DatoY=0;
Vector.add(DatoY);
}
XYSeries series = new SimpleXYSeries(Vector, SimpleXYSeries.ArrayFormat.Y_VALS_ONLY,"");
LineAndPointFormatter seriesFormat = new LineAndPointFormatter(Color.rgb(0, 0, 0), 0x000000, 0x000000, null);
plot.clear();
plot.addSeries(series, seriesFormat);