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

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

AChartEngine應(yīng)用之PieChart(餅圖)

系統(tǒng) 2099 0

AChartEngine應(yīng)用之PieChart(餅圖)

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

1.設(shè)置DefaultRenderer

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

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

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

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

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

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

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

mRenderer.setChartTitle("餅圖示例");// 設(shè)置餅圖標(biāo)題

mRenderer.setChartTitleTextSize(14);// 設(shè)置餅圖標(biāo)題大小

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è)置種類名稱和對應(yīng)的數(shù)值,前面是(key,value)鍵值對

SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();

if (i < COLORS.length) {

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

} else {

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

}

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

mRenderer.setChartTitleTextSize(14);// 設(shè)置餅圖標(biāo)題大小

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應(yīng)用之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)生與用戶交互,點擊對應(yīng)的區(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);// 設(shè)置為水平開始
		mRenderer.setDisplayValues(true);// 顯示數(shù)據(jù)
		mRenderer.setFitLegend(true);// 設(shè)置是否顯示圖例
		mRenderer.setLegendTextSize(10);// 設(shè)置圖例字體大小
		mRenderer.setLegendHeight(10);// 設(shè)置圖例高度
		mRenderer.setChartTitle("餅圖示例");// 設(shè)置餅圖標(biāo)題

		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è)置種類名稱和對應(yīng)的數(shù)值,前面是(key,value)鍵值對
			SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
			if (i < COLORS.length) {
				renderer.setColor(COLORS[i]);// 設(shè)置描繪器的顏色
			} else {
				renderer.setColor(getRandomColor());// 設(shè)置描繪器的顏色
			}
			renderer.setChartValuesFormat(NumberFormat.getPercentInstance());// 設(shè)置百分比
			mRenderer.setChartTitleTextSize(14);// 設(shè)置餅圖標(biāo)題大小
			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();// 獲取當(dāng)前的類別和指針
							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);
	}
}

  


對應(yīng)的項目源碼:http://download.csdn.net/detail/qiu_11/6853469

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

AChartEngine應(yīng)用系列文章

(一)AChartEngine簡介

(二)AChartEngine應(yīng)用之PieChart(餅圖)

(三) AChartEngine應(yīng)用之BarChart(柱形圖)

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

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

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

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






AChartEngine應(yīng)用之PieChart(餅圖)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲成色 | 免费观看黄色a一级录像 | www.日本一区二区 | 在线日韩中文字幕 | 国产欧美一区二区精品性色99 | 日本久久色 | 亚洲精品久久久久久婷婷 | 日本级毛片免费观看 | 久草视频免费在线观看 | 超碰小说| 欧美精品亚洲精品日韩一区 | 日韩精品一区二区三区乱码 | 毛片免费高清免费 | 国内精品久久久久鸭 | 亚洲国产天堂在线mv网站 | 99在线免费观看 | 欧美成人午夜视频在线观看 | 欧美另类久久久精品 | 亚洲精品区在线播放一区二区 | 亚洲国产欧美一区二区欧美 | 欧美特级毛片a够爽 | 国产91小视频 | 久久伊人网站 | 成人免费播放视频777777 | 日韩高清在线日韩大片观看网址 | 久久狠色噜噜狠狠狠狠97 | 欧美亚洲国产精品久久久 | 国产视频综合 | 亚洲国产精品日韩一线满 | 久久免费手机视频 | 99视频免费在线观看 | 亚洲国产精品xo在线观看 | 日韩国产中文字幕 | 黄色成人免费观看 | 国产在热线精品视频国产一二 | 国产高清在线精品一区免费97 | 精品成人毛片一区二区视 | 热99re久久精品天堂vr | 亚洲男人的天堂在线视频 | 免费超爽大片黄网站 | 亚欧有色亚欧乱色视频 |