0

我是 android 新手,正在尝试学习在 android 中创建或绘制图形。我遇到了2个图书馆:

  1. 图形视图
  2. 安卓绘图。

我的意图是接收一些声音文件并将其绘制在图表上。因此,为此目的,哪个库会更好。我还想知道,在哪里可以看到这些库的完整实现或定义,即上述库中使用的 API 的结构和代码。

我还尝试了一些网上可用的示例代码。但我正在寻找可以在 eclipse ADT 上开发的更复杂的代码,因此可以从中学到一些东西。

4

4 回答 4

1

我的意图是接收一些声音文件并将其绘制在图表上

默认情况下,这两个库都不这样做。这些库用于在给定一组数据点的情况下绘制图表。从声音文件中获取数据点由您决定。

因此,为此目的,哪个库会更好。

获得数据点后,任何一个库都应该没问题。

我还想知道,在哪里可以看到这些库的完整实现或定义,即上述库中使用的 API 的结构和代码。

查看GraphViewAndroidPlot的源代码。

于 2013-07-01T06:38:05.050 回答
1

我用过Achartengine几次,效果很好。我修改它没有困难。

于 2013-07-01T06:43:42.790 回答
0

如果您正在使用画布绘制简单的折线图来绘制图形。

于 2013-07-01T06:15:19.953 回答
0

使用安卓绘图。此代码绘制 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);
于 2014-03-04T17:34:40.580 回答