1.設置DefaultRendererDefaultRenderermRenderer=newDefaultRenderer();//PieChart的主要描繪器mRend" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

AChartEngine應用之PieChart(餅圖)

系統 2063 0

AChartEngine應用之PieChart(餅圖)

構建餅圖的步驟主要分為以下三步,還需要在項目中引入AChartEngine依賴jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />

1.設置DefaultRenderer

DefaultRenderer mRenderer = new DefaultRenderer();// PieChart的主要描繪器

mRenderer.setZoomButtonsVisible(true);// 顯示放大縮小功能按鈕

mRenderer.setStartAngle(180);// 設置為水平開始

mRenderer.setDisplayValues(true);// 顯示數據

mRenderer.setFitLegend(true);// 設置是否顯示圖例

mRenderer.setLegendTextSize(10);// 設置圖例字體大小

mRenderer.setLegendHeight(10);// 設置圖例高度

mRenderer.setChartTitle("餅圖示例");// 設置餅圖標題

mRenderer.setChartTitleTextSize(14);// 設置餅圖標題大小

2.構建數據源CategorySeries

for (int i = 0; i < data.length; i++)

VALUE += data[i];

for (int i = 0; i < data.length; i++) {

mSeries.add("示例 " + (i + 1), data[i] / VALUE);// 設置種類名稱和對應的數值,前面是(key,value)鍵值對

SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();

if (i < COLORS.length) {

renderer.setColor(COLORS[i]);// 設置描繪器的顏色

} else {

renderer.setColor(getRandomColor());// 設置描繪器的顏色

}

renderer.setChartValuesFormat(NumberFormat.getPercentInstance());// 設置百分比

mRenderer.setChartTitleTextSize(14);// 設置餅圖標題大小

mRenderer.addSeriesRenderer(renderer);// 將最新的描繪器添加到DefaultRenderer中

}

3.通過ChartFactory獲取餅圖

mChartView = ChartFactory.getPieChartView(getApplicationContext(),

mSeries, mRenderer);// 構建mChartView

mRenderer.setClickEnabled(true);// 允許點擊事件

mChartView.setOnClickListener(new View.OnClickListener() {// 具體內容

}

運行效果圖:

AChartEngine應用之PieChart(餅圖)

code

    package com.qiuzhping.achart;

import java.text.NumberFormat;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.SeriesSelection;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.Toast;

/**
 * @項目名稱:AChart
 * @類名稱:PieChartBuilder
 * @作者:Qiuzhping
 * @時間:2014-1-15下午11:20:48
 * @作用 :構建餅圖,并產生與用戶交互,點擊對應的區域能正確顯示信息
 */
public class PieChartBuilder extends Activity {

	private static int[] COLORS = new int[] { Color.RED, Color.GREEN,
			Color.BLUE, Color.MAGENTA, Color.CYAN, Color.YELLOW, Color.DKGRAY };
	double data[] = new double[] { 20, 30, 40, 50, 60, 70, 80, 90, 100 };

	private CategorySeries mSeries = new CategorySeries("");// PieChart的DataSet
															// 其實就是一些鍵值對,跟Map使用方法差不多

	private DefaultRenderer mRenderer = new DefaultRenderer();// PieChart的主要描繪器

	private GraphicalView mChartView;// 用來顯示PieChart 需要在配置文件Manifest中添加
										// <activity
										// android:name="org.achartengine.GraphicalActivity"
										// />

	private LinearLayout mLinear;

	private static double VALUE = 0;// 總數

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.xy_chart);
		mLinear = (LinearLayout) findViewById(R.id.chart);
		mLinear.setBackgroundColor(Color.BLACK);

		mRenderer.setZoomButtonsVisible(true);// 顯示放大縮小功能按鈕
		mRenderer.setStartAngle(180);// 設置為水平開始
		mRenderer.setDisplayValues(true);// 顯示數據
		mRenderer.setFitLegend(true);// 設置是否顯示圖例
		mRenderer.setLegendTextSize(10);// 設置圖例字體大小
		mRenderer.setLegendHeight(10);// 設置圖例高度
		mRenderer.setChartTitle("餅圖示例");// 設置餅圖標題

		for (int i = 0; i < data.length; i++)
			VALUE += data[i];
		for (int i = 0; i < data.length; i++) {
			mSeries.add("示例 " + (i + 1), data[i] / VALUE);// 設置種類名稱和對應的數值,前面是(key,value)鍵值對
			SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
			if (i < COLORS.length) {
				renderer.setColor(COLORS[i]);// 設置描繪器的顏色
			} else {
				renderer.setColor(getRandomColor());// 設置描繪器的顏色
			}
			renderer.setChartValuesFormat(NumberFormat.getPercentInstance());// 設置百分比
			mRenderer.setChartTitleTextSize(14);// 設置餅圖標題大小
			mRenderer.addSeriesRenderer(renderer);// 將最新的描繪器添加到DefaultRenderer中
		}

		if (mChartView == null) {// 為空需要從ChartFactory獲取PieChartView
			mChartView = ChartFactory.getPieChartView(getApplicationContext(),
					mSeries, mRenderer);// 構建mChartView
			mRenderer.setClickEnabled(true);// 允許點擊事件
			mChartView.setOnClickListener(new View.OnClickListener() {// 具體內容
						@Override
						public void onClick(View v) {
							SeriesSelection seriesSelection = mChartView
									.getCurrentSeriesAndPoint();// 獲取當前的類別和指針
							if (seriesSelection == null) {
								Toast.makeText(getApplicationContext(),
										"您未選擇數據", Toast.LENGTH_SHORT).show();
							} else {
								for (int i = 0; i < mSeries.getItemCount(); i++) {
									mRenderer.getSeriesRendererAt(i)
											.setHighlighted(
													i == seriesSelection
															.getPointIndex());
								}
								mChartView.repaint();
								Toast.makeText(
										getApplicationContext(),
										"您選擇的是第"
												+ (seriesSelection
														.getPointIndex() + 1)
												+ " 項 "
												+ " 百分比為  "
												+ NumberFormat
														.getPercentInstance()
														.format(seriesSelection
																.getValue()),
										Toast.LENGTH_SHORT).show();
							}
						}
					});
			mLinear.addView(mChartView, new LayoutParams(
					LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		} else {
			mChartView.repaint();
		}
	}

	private int getRandomColor() {// 分別產生RBG數值
		Random random = new Random();
		int R = random.nextInt(255);
		int G = random.nextInt(255);
		int B = random.nextInt(255);
		return Color.rgb(R, G, B);
	}
}

  


對應的項目源碼:http://download.csdn.net/detail/qiu_11/6853469

待續.......

AChartEngine應用系列文章

(一)AChartEngine簡介

(二)AChartEngine應用之PieChart(餅圖)

(三) AChartEngine應用之BarChart(柱形圖)

(四) AChartEngine應用之PieChart(動態餅圖,允許產生動態數據并顯示)

(五) AChartEngine應用之LineChart(模擬生命特征值圖)

(六) AChartEngine應用之LineChart(模擬三角函數sin,cos)

(七) AChartEngine高級應用 CombinedXYChart (組合統計圖)






AChartEngine應用之PieChart(餅圖)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 洛川县| 禹州市| 什邡市| 灌阳县| 阿坝县| 滨州市| 叶城县| 武乡县| 宾阳县| 天水市| 西吉县| 鹿泉市| 金华市| 南城县| 涿州市| 万安县| 达拉特旗| 汾阳市| 马关县| 安仁县| 健康| 六枝特区| 喜德县| 曲阜市| 鲜城| 绍兴县| 揭东县| 府谷县| 葫芦岛市| 苍梧县| 侯马市| 蕉岭县| 吉隆县| 锦州市| 卫辉市| 巴彦县| 肥西县| 南通市| 句容市| 安达市| 板桥市|