Android中使用achartengine生成圖表
achartengine是google的一個開源項目,可以在https://code.google.com/p/achartengine/ 下載技術文檔,jar包以及項目源代碼
demo下載:https://code.google.com/p/achartengine/downloads/list
一、餅狀圖
新建工程,添加achartengine jar包
PieChart.java
</div>
</div>
package com.meritit.footlottery.view;import org.achartengine.ChartFactory; import org.achartengine.model.CategorySeries; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.SimpleSeriesRenderer; import android.content.Context; import android.graphics.Color; import android.view.View; public class PieChart { public View execute(Context context) { int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE }; DefaultRenderer renderer = buildCategoryRenderer(colors); CategorySeries categorySeries = new CategorySeries("Vehicles Chart"); categorySeries.add("勝 ", 30); categorySeries.add("負", 20); categorySeries.add("平", 60); return ChartFactory .getPieChartView(context, categorySeries, renderer); } protected DefaultRenderer buildCategoryRenderer(int[] colors) { DefaultRenderer renderer = new DefaultRenderer(); for (int color : colors) { SimpleSeriesRenderer r = new SimpleSeriesRenderer(); r.setColor(color); renderer.addSeriesRenderer(r); } //顯示標簽 renderer.setShowLabels(true); //不顯示底部說明 renderer.setShowLegend(false); //設置標簽字體大小 renderer.setLabelsTextSize(15); renderer.setLabelsColor(Color.BLACK); renderer.setZoomEnabled(false); renderer.setPanEnabled(false); return renderer; } } </pre><br />
使用方法
</div> </div> 獲得一個View對象,在需要添加的布局下面直接addView二、柱狀圖
</div> </div>package com.meritit.footlottery.view;import java.util.Random; import org.achartengine.ChartFactory; import org.achartengine.chart.BarChart.Type; import org.achartengine.model.CategorySeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.renderer.DefaultRenderer; import org.achartengine.renderer.SimpleSeriesRenderer; import org.achartengine.renderer.XYMultipleSeriesRenderer; import com.meritit.footlottery.R; import android.content.Context; import android.graphics.Color; import android.view.View; public class BarChart { private Context context; public View execute(Context context) { this.context = context; return ChartFactory .getBarChartView(context, getBarDemoDataset(), getBarDemoRenderer(), Type.DEFAULT); } /** * XYMultipleSeriesDataset 類型的對象,用于提供圖表需要表示的數據集, * 這里我們用 getBarDemoDataset 來得到它。 */ private XYMultipleSeriesDataset getBarDemoDataset() { XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); final int nr = 10; Random r = new Random(); for (int i = 0; i < 3; i++) { CategorySeries series = new CategorySeries("球隊 " + (i + 1)); for (int k = 0; k < nr; k++) { series.add(100 + r.nextInt() % 100); } dataset.addSeries(series.toXYSeries()); } return dataset; } /** * XYMultipleSeriesRenderer 類型的對象,用于提供圖表展現時的一些樣式, * 這里我們用 getBarDemoRenderer 方法來得到它。 * getBarDemoRenderer 方法構建了一個 XYMultipleSeriesRenderer 用來設置2個系列各自的顏色 */ public XYMultipleSeriesRenderer getBarDemoRenderer() { XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); SimpleSeriesRenderer r = new SimpleSeriesRenderer(); r.setColor(Color.BLUE); renderer.addSeriesRenderer(r); r = new SimpleSeriesRenderer(); r.setColor(Color.GREEN); renderer.addSeriesRenderer(r); r = new SimpleSeriesRenderer(); r.setColor(Color.RED); renderer.addSeriesRenderer(r); renderer.setApplyBackgroundColor(true); renderer.setBackgroundColor(Color.TRANSPARENT); renderer.setMarginsColor(context.getResources().getColor(R.color.main_background_color)); renderer.setZoomEnabled(false, false); renderer.setPanEnabled(false, false); renderer.setLabelsTextSize(15); renderer.setLabelsColor(Color.BLACK); setChartSettings(renderer); return renderer; } /** * setChartSettings 方法設置了下坐標軸樣式。 */ private void setChartSettings(XYMultipleSeriesRenderer renderer) { renderer.setChartTitle("戰績分析"); renderer.setXTitle("橫坐標"); renderer.setYTitle("縱坐標"); renderer.setXAxisMin(0.5); renderer.setXAxisMax(10.5); renderer.setYAxisMin(0); renderer.setYAxisMax(210); } } </pre><p> </p>
上面代碼部分解釋:
renderer.setApplyBackgroundColor(true); //設置背景使能,為true下面的設置背景才有效
renderer.setBackgroundColor(Color.TRANSPARENT); //設置背景
renderer.setMarginsColor() //設置周圍區域顏色
renderer.setZoomEnabled(false, false); //設置是否能放大
renderer.setPanEnabled(false, false); //設置是否可以移動
renderer.setLabelsTextSize(15); //設置標簽文字大小
renderer.setLabelsColor(Color.BLACK);;
來自:http://blog.csdn.net/dawanganban/article/details/17755449本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!相關經驗
相關資訊
相關文檔
目錄