您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在Android Studio中使用AChartEngine制作餅圖,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
AChartEngine簡(jiǎn)介:
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) 通過(guò)調(diào)用 數(shù)據(jù)集 (Dataset) 和 渲染器集合 (Renderer) 可以生成帶圖表的 GraphicalView 或者 GraphicalActivity。
效果圖:
具體步驟:
1、下載AChartEngine庫(kù):http://code.google.com/p/achartengine/downloads/list
2、將下載的jar包引入到項(xiàng)目中(具體方法可參考我的另一篇博文:Android Studio 在項(xiàng)目中引用第三方j(luò)ar包 )
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è)類(lèi)別分別對(duì)應(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)字號(hào) renderer.setLegendTextSize(50);//設(shè)置圖例字號(hào) renderer.setApplyBackgroundColor(true);//設(shè)置是否應(yīng)用背景色 renderer.setBackgroundColor(Color.BLACK); return renderer; }
對(duì)應(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()方法生成餅圖:
(備注:使用該方法的話,則需要在AndroidManifest.xml中注冊(cè)org.achartengine.GraphicalActivity,添加位置如下圖:)
用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)題字號(hào)
setClickEnabled(boolean enabled) 設(shè)置是否允許單擊事件
setFitLegend(boolean fit) 設(shè)置圖例字號(hào)自適應(yīng)
setLegendHeight(int height)設(shè)置圖例高度(單位: pixels)
setLegendTextSize(float textSize) 設(shè)置圖例字號(hào)
setPanEnabled(boolean enabled) 設(shè)置是否允許拖動(dòng)
setShowLegend(boolean showLegend) 設(shè)置是否顯示圖例
setTextTypeface(java.lang.String typefaceName, int style) 設(shè)置字體名和類(lèi)型
setZoomButtonsVisible(boolean visible) 設(shè)置是否顯示放大縮小按鈕
setZoomEnabled(boolean enabled) 設(shè)置是否允許放大和縮小
setZoomRate(float rate) 設(shè)置放大縮小的倍率
setDisplayValues(boolean enabled) 設(shè)置是否顯示數(shù)據(jù)
setChartValuesFormat(NumberFormat format) 設(shè)置百分比
Android是一種基于Linux內(nèi)核的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由美國(guó)Google公司和開(kāi)放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開(kāi)發(fā)。
上述內(nèi)容就是怎么在Android Studio中使用AChartEngine制作餅圖,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。