本文采用的统计图参考:AChartEngine

访问地址 :http://code.google.com/p/achartengine/

先给出效果图

本文的开发代码主要是这些:对一些代码进行修改

以下文件是直接使用官方下载后

这些主要是对文件【WeightTimeChart.java】做了修改

/**
 * WeightTimeChart.java
 * 版权所有(C) 2013
 * 创建:cuiran 2013-10-24 下午4:11:28
 */
package com.cayden.weightnotes.achartengine;

import java.util.Date;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import com.cayden.weightnotes.util.VeDate;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;

/**
 * TODO 折线图
 * @author cuiran
 * @version 1.0.0
 */
public class WeightTimeChart extends AbstractDemoChart {
	private static final int SERIES_NR = 1;
	/* (non-Javadoc)
	 * @see com.cayden.weightnotes.achartengine.IDemoChart#getName()
	 */
	@Override
	public String getName() {
		// TODO Auto-generated method stub
		return "WeightTimeChart";
	}

	/* (non-Javadoc)
	 * @see com.cayden.weightnotes.achartengine.IDemoChart#getDesc()
	 */
	@Override
	public String getDesc() {
		// TODO Auto-generated method stub
		return "WeightTimeChart";
	}

	 private XYMultipleSeriesDataset getDateDemoDataset() {
		    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
		    final int nr = 7;

		    long value = new Date().getTime() - 3 * TimeChart.DAY;
		    Random r = new Random();
		    for (int i = 0; i < SERIES_NR; i++) {
		      TimeSeries series = new TimeSeries("体重变化趋势 ");

		      series.add(VeDate.strToDate("2013-10-19"), 85.3);
		      series.add(VeDate.strToDate("2013-10-20"), 85.6);
		      series.add(VeDate.strToDate("2013-10-21"), 84.5);
		      series.add(VeDate.strToDate("2013-10-22"), 85.0);
		      series.add(VeDate.strToDate("2013-10-23"), 85.1);
		      series.add(VeDate.strToDate("2013-10-24"), 85.3);
		      series.add(VeDate.strToDate("2013-10-25"), 85.3);
		      series.add(VeDate.strToDate("2013-10-26"), 85.3);

//		      for (int k = 0; k < nr; k++) {
//		        series.add(new Date(value + k * TimeChart.DAY / 4), 20 + r.nextInt() % 100);
//		      }

		      dataset.addSeries(series);

		    }
		    return dataset;
		  }

	  private XYMultipleSeriesRenderer getDemoRenderer() {
		    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
		    renderer.setAxisTitleTextSize(19);
		    renderer.setChartTitleTextSize(23);
		    renderer.setLabelsTextSize(18);
		    renderer.setLegendTextSize(18);
		    renderer.setPointSize(6f);
		    //in this order: top, left, bottom, right
		    renderer.setMargins(new int[] {20, 30, 15, 0});

		    XYSeriesRenderer r = new XYSeriesRenderer();

		    r = new XYSeriesRenderer();
		    r.setPointStyle(PointStyle.CIRCLE);
		    r.setColor(Color.GREEN);
		    r.setFillPoints(true);

		    renderer.addSeriesRenderer(r);
		    renderer.setAxesColor(Color.DKGRAY);
		    renderer.setLabelsColor(Color.LTGRAY);
		    renderer.setChartTitle("体重变化趋势");
		    renderer.setXTitle("日期");
		    renderer.setYTitle("体重(kg)");
		    renderer.setZoomButtonsVisible(true);

		    int length = renderer.getSeriesRendererCount();
		    for (int i = 0; i < length; i++) {
		      SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
		      seriesRenderer.setDisplayChartValues(true);
		    }
		    return renderer;
		  }
	/* (non-Javadoc)
	 * @see com.cayden.weightnotes.achartengine.IDemoChart#execute(android.content.Context)
	 */
	@Override
	public Intent execute(Context context) {
		// TODO Auto-generated method stub

		return ChartFactory.getTimeChartIntent(context, getDateDemoDataset(), getDemoRenderer(), "yyyy-MM-dd");
	}

}

如何调用呢?需要先获取对象参考提供的demo

private IDemoChart[] mCharts = new IDemoChart[] {new WeightDialChart(),
			new WeightTimeChart()};

 Intent intent=mCharts[1].execute(this);

		 startActivity(intent);

如果直接这样运行会报错

需要在配置文件中添加代码:

 <activity android:name="org.achartengine.GraphicalActivity" />

以上是针对如何使用AChartEngine 进行了大概说明。不要忘记看提供的API,里面有很多方法哦!

Android使用统计图AChartEngine 来展示数据的更多相关文章

  1. 在Android上用AChartEngine轻松绘制图表

    本文由 伯乐在线 - LeonHover 翻译.未经许可,禁止转载!英文出处:jaxenter.欢迎加入翻译组. Android发布不久的2008年底,开发者们已经开始寻找制表.制图.绘图的工具库.当 ...

  2. Android实现图表绘制和展示

    本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的. 在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案.但在Andr ...

  3. 使用UITableView展示数据

    TableView主要用于展示数据,类似于Android中的ListView. 我们可以通过两个方式使用TableView.第一种是直接使用TableView类.第二种是通过UITableViewCo ...

  4. Android中图表AChartEngine学习使用与例子

    很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android  api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比 ...

  5. 50个Android开发技巧(24 处理ListView数据为空的情况)

         在移动平台上为用户展示数据的一个经常用法是将数据填充进一个List内,而此时须要注意的一点就是: 原文地址:(http://blog.csdn.net/vector_yi/article/d ...

  6. Android学习之 AChartEngine 图表绘制

    Android 开源图表绘制工具AChartEngine地址:http://code.google.com/p/achartengine/ AChartEngine Android实现图表绘制和展示( ...

  7. (转载)Android之三种网络请求解析数据(最佳案例)

    [置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报  分类: Gson.Gson解析(1)  版权声明:本文为博主原创 ...

  8. flask+layui+echarts实现前端动态图展示数据

    效果图: 该效果主要实现一个table展示数据,并在下方生成一个折线图. 实现方式: 1.首先需要对表格进行一个数据加载,这里用到了layui的table.render,具体用法可以参考 https: ...

  9. PHP+Mysql+jQuery实现地图区域数据统计-展示数据

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...

随机推荐

  1. 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI-压缩码流版

    ===================================================== TI(时间信息)和SI(空间信息)计算工具文章列表: 视频特性TI(时间信息)和SI(空间信 ...

  2. Hive-ORC文件存储格式

    ORC文件格式是从Hive-0.11版本开始的.关于ORC文件格式的官方文档,以及基于官方文档的翻译内容这里就不赘述了,有兴趣的可以仔细研究了解一下.本文接下来根据论文<Major Techni ...

  3. 指令汇B新闻客户端开发(一) 新手引导页开发

    首先做开发的时候应该有一个闪屏页面和新手引导页, 我相信闪屏页面大家应该都会了,那么先看到新手引导页了. 我们可以看到这其实是一个ViewPager,我们也可以看到这是3个引导页,那么首先来看一下布局 ...

  4. API创建员工Element

    DECLARE ln_element_link_id PAY_ELEMENT_LINKS_F.ELEMENT_LINK_ID%TYPE; ld_effective_start_date DATE; l ...

  5. Android 推送和统计最优轮循(心跳策略)探究实践

    http://blog.csdn.net/sk719887916/article/details/51398416 skay亲笔 Android开发中经常会用到周期性执行一个动作的需求,大的场景有推送 ...

  6. JqGrid 显示表格

    JqGrid 是前台的表格显示库,使用起来相当方便. 这里分享下本人使用过程中遇到的问题及解决方案 ** 一.rowNum属性 ** 1.如果不设置,默认显示数是20,也就是说超过20以后的数据.不再 ...

  7. J2EE进阶(六)SSH框架工作流程项目整合实例讲解

    J2EE进阶(六)SSH框架工作流程项目整合实例讲解 请求流程 经过实际项目的进行,结合三大框架各自的运行机理可分析得出SSH整合框架的大致工作流程. 首先查看一下客户端的请求信息: 对于一个Web项 ...

  8. 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)

    ===================================================== 最简单的基于FFmpeg的封装格式处理系列文章列表: 最简单的基于FFmpeg的封装格式处理 ...

  9. 北大青鸟Asp.net之颗粒归仓

    自从小编走进编程的世界以来,学习的编程知识都是和C/S这个小伙伴握手,直到做完牛腩老师的新闻发布系统,才开始了小编的B/S学习生涯,和B/S初次谋面,小宇宙瞬间爆发了,看着自己的第一个B/S系统,牛腩 ...

  10. UNIX环境高级编程——system V信号量

    1. 信号量(semaphore)主要用于保护临界资源.进程可以根据它判断是否能访问某些共享资源.信号量除了用于访问控制外,还可用于进程同步,也就是进程间通信.2. 信号量分类:a. 二值信号量: 信 ...