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

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

AChartEngine應用之PieChart(餅圖)

系統(tǒng) 2087 0

AChartEngine應用之PieChart(餅圖)

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

1.設置DefaultRenderer

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

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

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

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

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

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

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

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

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

2.構(gòu)建數(shù)據(jù)源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);// 設置種類名稱和對應的數(shù)值,前面是(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);// 構(gòu)建mChartView

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

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

}

運行效果圖:

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
 * @作用 :構(gòu)建餅圖,并產(chǎn)生與用戶交互,點擊對應的區(qū)域能正確顯示信息
 */
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;// 總數(shù)

	@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);// 顯示數(shù)據(jù)
		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);// 設置種類名稱和對應的數(shù)值,前面是(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);// 構(gòu)建mChartView
			mRenderer.setClickEnabled(true);// 允許點擊事件
			mChartView.setOnClickListener(new View.OnClickListener() {// 具體內(nèi)容
						@Override
						public void onClick(View v) {
							SeriesSelection seriesSelection = mChartView
									.getCurrentSeriesAndPoint();// 獲取當前的類別和指針
							if (seriesSelection == null) {
								Toast.makeText(getApplicationContext(),
										"您未選擇數(shù)據(jù)", 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() {// 分別產(chǎn)生RBG數(shù)值
		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

待續(xù).......

AChartEngine應用系列文章

(一)AChartEngine簡介

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

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

(四) AChartEngine應用之PieChart(動態(tài)餅圖,允許產(chǎn)生動態(tài)數(shù)據(jù)并顯示)

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

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

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






AChartEngine應用之PieChart(餅圖)


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 昌黎县| 库车县| 读书| 南江县| 松阳县| 盱眙县| 阿瓦提县| 正定县| 武功县| 林芝县| 册亨县| 措美县| 乌海市| 内乡县| 固镇县| 新邵县| 阜新市| 社会| 平顺县| 逊克县| 眉山市| 惠水县| 拜城县| 星子县| 花莲市| 贵定县| 垦利县| 黄骅市| 墨江| 定日县| 马边| 甘洛县| 玛纳斯县| 台州市| 来凤县| 德格县| 天柱县| 安溪县| 兰溪市| 分宜县| 九台市|