0

我需要在我的 android 应用程序中绘制 3 个图形。每个图形都将位于 viewPager 布局内的片段内,并且每个片段将在应用程序处于焦点时保留在内存中。此外,当用户点击图形点时,应出现包含该点信息的弹出窗口。我找到了 afreechart 和 achartengine 库,但哪个更适合我的目的?最主要的是轻量级内存请求

4

1 回答 1

1

还有另一个轻量级图形库,有很多改进和简单的选项。这个库的名字是GraphViewlibrary。

它提供了静态和动态绘制图形的功能。还有许多其他功能,例如捏缩放等。

使用 GraphView 库:

Google for the GraphView.jar and place it inside your /libs folder under your applications directory.

以下是绘制随机曲线(正弦波)的示例代码:

GraphViewSeries rndSeries=new GraphViewSeries("random curve",null,data);
                            Log.d(TAG, "Series created");
                            GraphView graphView=new LineGraphView(getApplicationContext(), "Amplitude-Time Graph     X-axis:Time(ms)     Y-axis: Amplitude");
                            Log.d(TAG, "Line GraphView created");
                            graphView.addSeries(rndSeries);
                            Log.d(TAG, "series added");
                            graphView.setVerticalScrollBarEnabled(true);

                            //long xmax=preferences1.getLong("Maxx", 0);

                            graphView.setViewPort(0, 100);
                            Log.d(TAG, "port setup");
                            graphView.setScalable(true);
                            graphView.setScrollable(true);
                            graphView.computeScroll();
                            graphView.setHorizontalScrollBarEnabled(true);
                            graphView.setBackgroundColor(Color.BLACK);
                            graphView.setVerticalLabels(new String[] {"       ","    ","Amp"});
                            graphView.setHorizontalLabels(new String[] {"           ","Time (ms)"});
                            graphView.setManualYAxisBounds(300.0d, -30.0d);
                            graphView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
                            graphView.setVisibility(View.VISIBLE);
                            Log.d(TAG, "Obtaining reference to layout");
                            //setContentView(R.layout.graphview);
                            LinearLayout layout=(LinearLayout) findViewById(R.id.gviewlayoutt);
                            Log.d(TAG, "reference obtd");

                            layout.addView(graphView);
                            Log.d(TAG, "graph view added to layout");

对于使用其他类型的图形线线,饼等请参考以下链接:

http://www.jjoe64.com/p/graphview-library.html

AChartEngine我使用这个库的原因是它比具有许多附加功能要快得多。记忆力也很好。

希望这有帮助。

于 2013-09-11T09:27:58.573 回答