国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android Studio利用AChartEngine制作餅圖的方法

2019-10-21 21:37:50
字體:
供稿:網(wǎng)友

前言:

眾所周知,大家在很多項(xiàng)目中都會(huì)使用到圖表,具體表現(xiàn)形式為餅圖、折線圖、柱狀圖等,但是網(wǎng)上有很多圖表架包都是需要收費(fèi)的,而Google的AChartEngine是免費(fèi)的,于是AChartEngine就變成了首選方案,接下來就介紹一下AChartEngine在項(xiàng)目中的具體使用方法。下面話不多說了,來一起看看詳細(xì)的介紹吧

AChartEngine簡介:

AChartEngine是一款基于Android的圖表繪制引擎;

AChartEngine支持繪制餅圖、柱狀圖、折線圖、散點(diǎn)圖等;

AChartEngine繪制的圖表都支持水平(默認(rèn))或垂直方式展示,并且支持許多其他的自定義功能;

所有的圖表都可以建立為一個(gè)view,也可以建立為一個(gè)用于啟動(dòng)activity的intent。

AChartEngine的運(yùn)行機(jī)制:

每個(gè)圖表都需要一個(gè)數(shù)據(jù)集 (Dataset) 和 渲染器集合 (Renderer);

數(shù)據(jù)集:由許多數(shù)據(jù)組成;

渲染器:由不同的子渲染器組成;

獲取Activity 或 組件 : 圖表工廠 (ChartFactory) 通過調(diào)用 數(shù)據(jù)集 (Dataset) 和 渲染器集合 (Renderer) 可以生成帶圖表的 GraphicalView 或者 GraphicalActivity。

效果圖:

AndroidStudio,AChartEngine,餅圖

具體步驟:

1、下載AChartEngine庫:http://code.google.com/p/achartengine/downloads/list

2、將下載的jar包引入到項(xiàng)目中

3、構(gòu)建數(shù)據(jù)集(Dataset),CategorySeries.add(String category,double value)

double[] values = {500.00, 800.00, 1000.00, 900.00};double sumVal = values[0] + values[1] + values[2] + values[3];CategorySeries dataset = buildCategoryDataset("圖文報(bào)表", values);protected CategorySeries buildCategoryDataset(String title, double[] values){ CategorySeries series = new CategorySeries(title); series.add("房租:"+values[0], values[0]/sumVal); series.add("伙食費(fèi):"+values[1], values[1]/sumVal); series.add("生活費(fèi):"+values[2], values[2]/sumVal); series.add("其它:"+values[3], values[3]/sumVal); return series;}

4、構(gòu)建渲染器(Renderer)

餅圖的渲染器:

private DefaultRenderer getPieRenderer(){ DefaultRenderer renderer = new DefaultRenderer(); renderer.setZoomButtonsVisible(true);//設(shè)置顯示放大放小縮小按鈕 renderer.setZoomEnabled(true);//設(shè)置允許放大放小 //設(shè)置各個(gè)類別分別對應(yīng)的顏色 SimpleSeriesRenderer yellowRenderer = new SimpleSeriesRenderer(); yellowRenderer.setColor(Color.YELLOW); SimpleSeriesRenderer blueRenderer = new SimpleSeriesRenderer(); blueRenderer.setColor(Color.BLUE); SimpleSeriesRenderer redRenderer = new SimpleSeriesRenderer(); redRenderer.setColor(Color.RED); renderer.addSeriesRenderer(yellowRenderer); renderer.addSeriesRenderer(blueRenderer); renderer.addSeriesRenderer(redRenderer); renderer.setLabelsTextSize(30);//設(shè)置坐標(biāo)字號 renderer.setLegendTextSize(50);//設(shè)置圖例字號 renderer.setApplyBackgroundColor(true);//設(shè)置是否應(yīng)用背景色 renderer.setBackgroundColor(Color.BLACK); return renderer;}

對應(yīng)的顏色:

int[] colors = {Color.BLUE, Color.GREEN, Color.MAGENTA, Color.RED};DefaultRenderer renderer = buildCategoryRenderer(colors);protected DefaultRenderer buildCategoryRenderer(int[] colors){ DefaultRenderer renderer = new DefaultRenderer(); renderer.setLegendTextSize(35);//設(shè)置左下角標(biāo)注文字的大小 renderer.setLabelsTextSize(25);//餅圖上標(biāo)記文字的字體大小 renderer.setLabelsColor(Color.BLACK);//餅圖上標(biāo)記文字的顏色 renderer.setPanEnabled(false); renderer.setDisplayValues(true);//顯示數(shù)據(jù) for(int color : colors){ SimpleSeriesRenderer r = new SimpleSeriesRenderer(); r.setColor(color); //設(shè)置百分比 r.setChartValuesFormat(NumberFormat.getPercentInstance()); renderer.addSeriesRenderer(r); } return renderer;}

5、生成餅圖

有兩種方式:調(diào)用ChartFactory.getPieChartIntent()或者 getPieChartView()

區(qū)別在于:

一個(gè)返回Intent,這個(gè)intent可以啟動(dòng)一個(gè)特定的activity;

另一個(gè)返回GraphicalView,這個(gè)GraphicalView可以靈活設(shè)置,它可以僅作為一部分顯示在任何activity上

用ChartFactory.getPieChartIntent()方法生成餅圖:

AndroidStudio,AChartEngine,餅圖

(備注:使用該方法的話,則需要在AndroidManifest.xml中注冊org.achartengine.GraphicalActivity,添加位置如下圖:)

AndroidStudio,AChartEngine,餅圖

用ChartFactory.getPieChartView()方法生成餅圖:

先在布局文件中創(chuàng)建控件:

<LinearLayout android:id="@+id/ll_expense_piechart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:orientation="vertical"></LinearLayout>

Activity文件中生成餅圖:

private LinearLayout ll_expense_piechart;private GraphicalView graphicalView; private void initPieChart(View v){ ll_expense_piechart = (LinearLayout) v.findViewById(R.id.ll_expense_piechart); ll_expense_piechart.removeAllViews(); graphicalView = ChartFactory.getPieChartView(getContext()  ,dataset, renderer);//餅狀圖 graphicalView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); ll_expense_piechart.addView(graphicalView);}

Renderer常用的設(shè)置:

addSeriesRenderer(SimpleSeriesRenderer renderer)增加一個(gè)renderer到multiple renderer中

setApplyBackgroundColor(boolean apply) 設(shè)置是否應(yīng)用背景色

setBackgroundColor(int color) 設(shè)置背景色

setChartTitle(java.lang.String title)設(shè)置圖表的標(biāo)題

setChartTitleTextSize(float textSize)設(shè)置圖表標(biāo)題字號

setClickEnabled(boolean enabled) 設(shè)置是否允許單擊事件

setFitLegend(boolean fit) 設(shè)置圖例字號自適應(yīng)

setLegendHeight(int height)設(shè)置圖例高度(單位: pixels)

setLegendTextSize(float textSize) 設(shè)置圖例字號

setPanEnabled(boolean enabled) 設(shè)置是否允許拖動(dòng)

setShowLegend(boolean showLegend) 設(shè)置是否顯示圖例

setTextTypeface(java.lang.String typefaceName, int style) 設(shè)置字體名和類型

setZoomButtonsVisible(boolean visible) 設(shè)置是否顯示放大縮小按鈕

setZoomEnabled(boolean enabled) 設(shè)置是否允許放大和縮小

setZoomRate(float rate) 設(shè)置放大縮小的倍率

setDisplayValues(boolean enabled) 設(shè)置是否顯示數(shù)據(jù)

setChartValuesFormat(NumberFormat format) 設(shè)置百分比

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 济源市| 安康市| 长岛县| 左贡县| 山阴县| 谢通门县| 东安县| 南雄市| 西平县| 伊川县| 耿马| 康乐县| 德阳市| 贞丰县| 贡山| 恭城| 太原市| 大厂| 纳雍县| 苏尼特左旗| 双牌县| 永善县| 清丰县| 昌平区| 鲁山县| 林周县| 农安县| 徐汇区| 渝中区| 灵川县| 汝南县| 铁力市| 顺昌县| 确山县| 通州区| 长兴县| 桂林市| 禄丰县| 台东县| 静安区| 高碑店市|