android 使用 achartengine 画柱图 和 饼图

饼图



1,再包中导入 achartengine-1.1.0.jar

2,布局中

	mLinear = (LinearLayout) findViewById(R.id.chart);
		// 设置背景色
        mLinear.setBackgroundColor(Color.BLACK);
将做好的图表 View add进去
<pre name="code" class="java">        mLinear.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
</pre>3.获取GraphicalView mChartView<p></p><pre>
<span style="white-space:pre">	</span><pre name="code" class="java">       // 创建种类 
       final CategorySeries mSeries = new CategorySeries("");
      //
       final DefaultRenderer mRenderer = new DefaultRenderer();
<pre name="code" class="java">       mRenderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
       mRenderer.setStartAngle(180);// 设置为水平开始
       mRenderer.setDisplayValues(true);// 显示数据
       mRenderer.setFitLegend(true);// 设置是否显示图例
       mRenderer.setLegendTextSize(10);// 设置图例字体大小
	mRenderer.setLegendHeight(10);// 设置图例高度
	mRenderer.setChartTitle("饼图示例");// 设置饼图标题
      每个种类所占的份数
<pre name="code" class="java">      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 };
  
     将每一份所占比列 背景色设置
    <pre name="code" class="java">                          VALUE 为总数
                      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中
			}


			mChartView = ChartFactory.getPieChartView(getApplicationContext(),
					mSeries, mRenderer);// 构建mChartView
    为每一项 设置点击事件
                             mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容
<span style="white-space:pre">					</span>@Override
<span style="white-space:pre">					</span>public void onClick(View v) {
<span style="white-space:pre">						</span>SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();// 获取当前的类别和指针
<span style="white-space:pre">							</span>if (seriesSelection == null) {
<span style="white-space:pre">								</span>Toast.makeText(getApplicationContext(),"您未选择数据", Toast.LENGTH_SHORT).show();
<span style="white-space:pre">							</span>} else {
<span style="white-space:pre">								</span>for (int i = 0; i < mSeries.getItemCount(); i++) {
<span style="white-space:pre">									</span>mRenderer.getSeriesRendererAt(i).setHighlighted(i == seriesSelection.getPointIndex
<span style="white-space:pre">								</span>}
<span style="white-space:pre">								</span>mChartView.repaint();
<span style="white-space:pre">								</span>Toast.makeText(getApplicationContext(),"您选择的是第"+ (seriesSelection.getPointIndex() +                                                                     1)+ " 项 "+ " 百分比为  "+ NumberFormat.getPercentInstance().format
                                                                                   (seriesSelection.getValue()),
<span style="white-space:pre">										</span>Toast.LENGTH_SHORT).show();
<span style="white-space:pre">							</span>}
<span style="white-space:pre">						</span>}
<span style="white-space:pre">					</span>});
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">             
</pre><pre>
</pre><pre name="code" class="java">
 
</pre><pre>



<a target=_blank href="http://download.csdn.net/detail/chinaltz/8172135">源码</a>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值