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

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

AChartEngine應用之PieChart(餅圖)

系統 1928 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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美一区二区三区在线看 | 国产99视频在线 | 91精品国产综合久久久动漫日韩 | 亚洲综合精品一区二区三区中文 | 欧美国产伦久久久久 | 久久久久国产精品美女毛片 | 国产精品密蕾丝视频下载 | 奇米影 | av黄色在线 | 亚洲免费一 | 国产美女被爽到高潮免费A片小说 | 亚洲欧洲精品成人久久奇米网 | 欧美福利视频在线观看 | 97超级碰碰碰视频在线视频观看 | 亚洲国产精品一区 | 成人午夜视频在线观看 | 国产黄的网站免费 | 亚洲综合久久久久久中文字幕 | 亚洲成a人片在线观看中文 在线a人片免费观看国产 | 久久成人一区 | 伊人亚洲精品 | 婷婷天天 | 色花堂国产精品第一页 | 中文字幕一区在线观看视频 | 久久精品视在线看1 | 亚洲九九香蕉 | 婷婷亚洲五月 | 一区二区三区国产在线 | 亚洲综合色网 | 久久中文字幕久久久久91 | 女人午夜色又刺激黄的视频免费 | 国产97免费视频 | 日韩一区二区不卡 | 伊人2222| 狠狠色欧美亚洲狠狠色五 | 国产亚洲综合久久 | 在线观看日韩中文字幕 | 国产精品福利短视在线播放频 | 一区二区三区在线 | 亚洲国产品综合人成综合网站 | 亚洲天天更新 |