天天看點

android折線圖,Android繪制簡單折線圖的步驟

參考: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 )

關于折線圖繪制

折線圖的效果:

android折線圖,Android繪制簡單折線圖的步驟

代碼解釋:

//每條曲線的名稱

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}) ;

曲線的名稱和坐标點都以定義

android折線圖,Android繪制簡單折線圖的步驟

以下的解釋參照上圖

步驟一:折線圖的坐标集

首先應該建立 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);