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條評論
主站蜘蛛池模板: 亚洲人免费视频 | 午夜黄色大片 | 国产在线精品一区二区三区 | 91福利小视频 | 挑战者联盟第一季免费观看完整版 | 久久久久国产精品美女毛片 | 中文字幕在亚洲第一在线 | 中文视频在线 | 欧美午夜视频 | 99riav1国产精品视频 | 亚洲福利 | 亚洲最大黄色网址 | 一区二区三区在线观看免费 | 久久国产精品一区 | 国产欧美日韩 | 国产精品美女久久久久久久久久久 | 国产视频三区 | 久久久午夜精品 | 国产乱码精品1区2区3区 | 日韩美女一区 | 91制服| 仇爱电视剧泰剧在线观看免费播放 | 成人超碰 | 日韩成人黄色片 | 91插视频| 国产一区二区视频在线观看 | 色综合天天天天做夜夜夜夜做 | 又爽又黄又无遮挡的激情视频免费 | 亚洲在线观看免费视频 | 欧美一区二区三区播放 | 欧美一区精品 | 国产极品福利视频在线观看 | 在线观看亚洲 | 婷婷玖玖 | 欧美精品色 | av中文字幕在线 | 三级斤| 一区二区三区四区免费看 | 国产精品国产精品 | 色婷婷综合久久久中字幕精品久久 | 国产麻豆 |