绘制图表轻量级库

时间:2013-09-11 09:12:21

标签: android graph android-fragments

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

1 个答案:

答案 0 :(得分:1)

还有另一个轻量级图表库,它有很多改进和简单的选项。该库的名称是GraphView库。

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

使用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快得多,还有许多其他功能。记忆力也非常好。

希望这有所帮助。