Android中使用achartengine生成图表的具体方法

 更新时间:2014年01月03日 15:54:22   作者:  
这篇文章主要介绍了Android中使用achartengine生成图表的具体方法,有需要的朋友可以参考一下

今天在做项目的时候用到了图表功能,记录下来

achartengine是google的一个开源项目,可以在https://code.google.com/p/achartengine/ 下载技术文档,jar包以及项目源代码

demo下载:https://code.google.com/p/achartengine/downloads/list

一、饼状图

新建工程,添加achartengine  jar包

PieChart.java

复制代码 代码如下:

package com.meritit.footlottery.view;

import org.achartengine.ChartFactory;
import org.achartengine.model.CategorySeries;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;

import android.content.Context;
import android.graphics.Color;
import android.view.View;

public class PieChart {
 public View execute(Context context) {
  int[] colors = new int[] { Color.RED, Color.YELLOW, Color.BLUE };
  DefaultRenderer renderer = buildCategoryRenderer(colors);
  CategorySeries categorySeries = new CategorySeries("Vehicles Chart");
  categorySeries.add("胜 ", 30);
  categorySeries.add("负", 20);
  categorySeries.add("平", 60);
  return ChartFactory
    .getPieChartView(context, categorySeries, renderer);
 }

 protected DefaultRenderer buildCategoryRenderer(int[] colors) {
  DefaultRenderer renderer = new DefaultRenderer();
  for (int color : colors) {
   SimpleSeriesRenderer r = new SimpleSeriesRenderer();
   r.setColor(color);
   renderer.addSeriesRenderer(r); 
  }
  //显示标签
  renderer.setShowLabels(true);
  //不显示底部说明
  renderer.setShowLegend(false);
  //设置标签字体大小
  renderer.setLabelsTextSize(15);
  renderer.setLabelsColor(Color.BLACK);
  renderer.setZoomEnabled(false);
  renderer.setPanEnabled(false);
  return renderer;
 }
}

使用方法

复制代码 代码如下:

//View pieChart = new PieChart().execute(this);
//chartArea.addView(pieChart);

获得一个View对象,在需要添加的布局下面直接addView

二、柱状图

复制代码 代码如下:

package com.meritit.footlottery.view;

import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;

import com.meritit.footlottery.R;

import android.content.Context;
import android.graphics.Color;
import android.view.View;

public class BarChart {
 private Context context;
 public View execute(Context context) {
  this.context = context;
  return ChartFactory
    .getBarChartView(context, getBarDemoDataset(), getBarDemoRenderer(), Type.DEFAULT);
 }

    /**
     * XYMultipleSeriesDataset 类型的对象,用于提供图表需要表示的数据集,
     * 这里我们用 getBarDemoDataset 来得到它。
     */ 
    private XYMultipleSeriesDataset getBarDemoDataset() { 
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
        final int nr = 10; 
        Random r = new Random(); 
        for (int i = 0; i < 3; i++) { 
            CategorySeries series = new CategorySeries("球队 " + (i + 1)); 
            for (int k = 0; k < nr; k++) { 
                series.add(100 + r.nextInt() % 100); 
            } 
            dataset.addSeries(series.toXYSeries()); 
        } 
        return dataset; 
    }

    /**
     * XYMultipleSeriesRenderer 类型的对象,用于提供图表展现时的一些样式,
     * 这里我们用 getBarDemoRenderer 方法来得到它。
     * getBarDemoRenderer 方法构建了一个 XYMultipleSeriesRenderer 用来设置2个系列各自的颜色
     */ 
    public XYMultipleSeriesRenderer getBarDemoRenderer() { 
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 
        SimpleSeriesRenderer r = new SimpleSeriesRenderer(); 
        r.setColor(Color.BLUE); 
        renderer.addSeriesRenderer(r); 
        r = new SimpleSeriesRenderer(); 
        r.setColor(Color.GREEN); 
        renderer.addSeriesRenderer(r);
        r = new SimpleSeriesRenderer(); 
        r.setColor(Color.RED); 
        renderer.addSeriesRenderer(r);
        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.TRANSPARENT);
        renderer.setMarginsColor(context.getResources().getColor(R.color.main_background_color));
        renderer.setZoomEnabled(false, false);
        renderer.setPanEnabled(false, false);
        renderer.setLabelsTextSize(15);
  renderer.setLabelsColor(Color.BLACK);
        setChartSettings(renderer); 
        return renderer; 
    }

    /**
     * setChartSettings 方法设置了下坐标轴样式。
     */ 
    private void setChartSettings(XYMultipleSeriesRenderer renderer) { 
        renderer.setChartTitle("战绩分析"); 
        renderer.setXTitle("横坐标"); 
        renderer.setYTitle("纵坐标"); 
        renderer.setXAxisMin(0.5); 
        renderer.setXAxisMax(10.5); 
        renderer.setYAxisMin(0); 
        renderer.setYAxisMax(210); 
    } 
}

上面代码部分解释:
renderer.setApplyBackgroundColor(true);  //设置背景使能,为true下面的设置背景才有效

renderer.setBackgroundColor(Color.TRANSPARENT);  //设置背景

renderer.setMarginsColor() //设置周围区域颜色

renderer.setZoomEnabled(false, false);  //设置是否能放大

renderer.setPanEnabled(false, false);  //设置是否可以移动

renderer.setLabelsTextSize(15);  //设置标签文字大小
renderer.setLabelsColor(Color.BLACK);

相关文章

  • Android Studio 透明状态栏的实现示例

    Android Studio 透明状态栏的实现示例

    这篇文章主要介绍了Android Studio 透明状态栏的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Android自定义实现开关按钮代码

    Android自定义实现开关按钮代码

    经常可以看到一些选择开个状态的配置文件,但是外观都不多好看。我感觉还是自定义的比较好,下面小编给大家介绍通过Android自定义实现开关按钮代码,感兴趣的童鞋一起学习吧
    2016-05-05
  • Android实现在列表List中显示半透明小窗体效果的控件用法详解

    Android实现在列表List中显示半透明小窗体效果的控件用法详解

    这篇文章主要介绍了Android实现在列表List中显示半透明小窗体效果的控件用法,结合实例形式分析了Android半透明提示框的实现与设置技巧,需要的朋友可以参考下
    2016-06-06
  • Ionic2创建App启动页左右滑动欢迎界面

    Ionic2创建App启动页左右滑动欢迎界面

    使用Ionic2创建应用非常简单,只需在V1的命令后跟上--v2即可.这篇文章主要介绍了Ionic2创建App启动页左右滑动欢迎界面的相关资料,需要的朋友可以参考下
    2016-10-10
  • Android中的WebView详细介绍

    Android中的WebView详细介绍

    这篇文章主要介绍了Android中的WebView详细介绍,本文讲解了WebView的概念、使用方法、各种使用实例等,需要的朋友可以参考下
    2015-06-06
  • Android中实现Webview顶部带进度条的方法

    Android中实现Webview顶部带进度条的方法

    这篇文章主要介绍了Android中实现Webview顶部带进度条的方法,当前很流行的一个效果,就是打开网页时会在顶部显示一个打开进度条,需要的朋友可以参考下
    2015-01-01
  • Android仿音乐播放器功能

    Android仿音乐播放器功能

    这篇文章主要为大家详细介绍了Android仿音乐播放器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 详解Android中Activity运行时屏幕方向与显示方式

    详解Android中Activity运行时屏幕方向与显示方式

    本文主要对如何控制Android中Activity运行时屏幕方向与显示方式进行详细全面的实例讲解。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • Android自定义字母导航栏

    Android自定义字母导航栏

    这篇文章主要为大家详细介绍了Android自定义字母导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • android使用url connection示例(get和post数据获取返回数据)

    android使用url connection示例(get和post数据获取返回数据)

    这篇文章主要介绍了android使用URLConnection来get和post数据获取返回的数据,大家参考使用吧
    2014-01-01

最新评论