參考:http://www.cnblogs.com/youxilua/archive/2012/01/18/2325132.html
初學者注意:要把libs檔案夾做些什麼---libs檔案夾,右鍵 Build Path -> Use as source folder
1、 使用Android 繪圖工具庫 AChartEngine
2、 繪制折線圖的代碼解析
關于工具庫
AChartEngine是為 android 應用而設計的繪圖工具庫。目前該庫的最新穩定版本是 0.7 ,支援繪制以下類型的圖表 :
· line chart
· area chart
· scatter chart
· time chart
· bar chart
· pie chart
· bubble chart
· doughnut chart
· range (high-low) bar chart
· dial chart / gauge
· combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart
· cubic line chart
以上每種圖表可以包含多個序列, 可以将 X 軸以水準或垂直的形式顯示,也支援很多自定義的特性 . 圖表可以作為 Viewl 建構,也可以作為 Intent 建構 —— 這樣可以被用于啟動一個活動( Activity )
關于折線圖繪制
折線圖的效果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CNiNTNyQDOkdjZ4MzM4kDZ5EjNyUGMhVDZ3AjMxcDOy8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
代碼解釋:
//每條曲線的名稱
String[] titles = new String[]{ "First" , "Second" };
List x = new ArrayList (); //點集的x坐标
List y = new ArrayList (); //點集的y坐标
x.add( new double []{1,3,5,7,9,11}) ;
x.add( new double []{0,2,4,6,8,10}) ;
y.add( new double []{3,14,5,30,20,25}) ;
y.add( new double []{18,9,21,15,10,6}) ;
曲線的名稱和坐标點都以定義
以下的解釋參照上圖
步驟一:折線圖的坐标集
首先應該建立 XYSeries對象: 用于提供繪制的點集合的資料
XYSeries series = new XYSeries(titles[i]); // 根據每條線的名稱建立
将所有的坐标加入這個集合
series .add (xV[k], yV[k]);
XYMultipleSeriesDataset對象用于 儲存點集資料 ,包括每條曲線的X,Y坐标
// 用于資料的存放
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
dataset .addSeries (series);
步驟二:折線圖的樣式集
定義每條曲線的顔色
int [] colors = new int [] {Color. BLUE ,Color. GREEN };
定義每條曲線的點的形狀
PointStyle [] styles =
new PointStyle []{ PointStyle . CIRCLE , PointStyle . DIAMOND };
曲線圖的格式,包括顔色,值的範圍,點和線的形狀等等 都封裝在 XYSeriesRender對象中,再将XYSeriesRender對象封裝在 XYMultipleSeriesRenderer 對象中
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
r.setFillPoints(fill);
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.addSeriesRenderer(r);
設定折線圖名稱,坐标軸的名稱,坐标軸的起點重點,坐标軸的顔色,坐标軸上數字的顔色
setChartSettings(renderer, "Line Chart Demo" , "X" , "Y" , - 1 , 12, 0, 35 , Color. WHITE , Color. WHITE );
步驟三:顯示折線圖
View chart = ChartFactory. getLineChartView ( this , dataset, renderer);
setContentView(chart);