我需要在我的 android 应用程序中绘制 3 个图形。每个图形都将位于 viewPager 布局内的片段内,并且每个片段将在应用程序处于焦点时保留在内存中。此外,当用户点击图形点时,应出现包含该点信息的弹出窗口。我找到了 afreechart 和 achartengine 库,但哪个更适合我的目的?最主要的是轻量级内存请求
问问题
780 次
1 回答
1
还有另一个轻量级图形库,有很多改进和简单的选项。这个库的名字是GraphView
library。
它提供了静态和动态绘制图形的功能。还有许多其他功能,例如捏缩放等。
使用 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 回答