Android使用统计图AChartEngine 来展示数据
本文采用的统计图参考: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 来展示数据的更多相关文章
- 在Android上用AChartEngine轻松绘制图表
本文由 伯乐在线 - LeonHover 翻译.未经许可,禁止转载!英文出处:jaxenter.欢迎加入翻译组. Android发布不久的2008年底,开发者们已经开始寻找制表.制图.绘图的工具库.当 ...
- Android实现图表绘制和展示
本文演示在Android平台中绘制和展示图表示例,本示例是基于RChart 2实现的. 在一个系统中经常要用到图表统计数据,在WEB开发中图表绘制是一件简单的事情,因为有比较多的开源方案.但在Andr ...
- 使用UITableView展示数据
TableView主要用于展示数据,类似于Android中的ListView. 我们可以通过两个方式使用TableView.第一种是直接使用TableView类.第二种是通过UITableViewCo ...
- Android中图表AChartEngine学习使用与例子
很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果.基本有以下几种方法: 1:可以进行android api进行draw这样的话,效率比较低 2:使用开源绘表引擎,这样效率比 ...
- 50个Android开发技巧(24 处理ListView数据为空的情况)
在移动平台上为用户展示数据的一个经常用法是将数据填充进一个List内,而此时须要注意的一点就是: 原文地址:(http://blog.csdn.net/vector_yi/article/d ...
- Android学习之 AChartEngine 图表绘制
Android 开源图表绘制工具AChartEngine地址:http://code.google.com/p/achartengine/ AChartEngine Android实现图表绘制和展示( ...
- (转载)Android之三种网络请求解析数据(最佳案例)
[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报 分类: Gson.Gson解析(1) 版权声明:本文为博主原创 ...
- flask+layui+echarts实现前端动态图展示数据
效果图: 该效果主要实现一个table展示数据,并在下方生成一个折线图. 实现方式: 1.首先需要对表格进行一个数据加载,这里用到了layui的table.render,具体用法可以参考 https: ...
- PHP+Mysql+jQuery实现地图区域数据统计-展示数据
我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...
随机推荐
- 如何将dtb反编译成dts
点击打开链接 由于device tree会将一个node的信息分布在各个文件里,查看起来很不方便,比如如下例子,ldb在三个文件中都有配置: imx6qdl-sabresd.dtsi: [plain] ...
- JBOSS EAP 6 系列四 EJB实现——调用(贯穿始终的模块)
本文主要介绍在JBOSS EAP 6.2(或者JBOSS AS7)中模块是如何贯穿EJB实现的始终.延续上一博文<认识模块的使用>的话题继续聊JBOSS做为模块申明式容器的这一特性在EJB ...
- iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge
上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascr ...
- SSH架构实现在线支付功能
在线支付是指卖方与卖方通过因特网上的电子商务网站进行交易时,银行为其提供网上资金结算服务的一种业务,她为企业和个人提供了一个安全.快捷.方便的电子商务应用环境和网上资金结算工具,在线支付不仅帮助企业实 ...
- [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39158939 本文作者:sushengmiyan ------------------ ...
- 后端分布式系列:分布式存储-MySQL 数据库事务与复制
好久没有写技术文章了,因为一直在思考 「后端分布式」这个系列到底怎么写才合适.最近基本想清楚了,「后端分布式」包括「分布式存储」和 「分布式计算」两大类.结合实际工作中碰到的问题,以寻找答案的方式来剖 ...
- 手把手教你轻松实现listview下拉刷新
很多人觉得自定义一个listview下拉刷新上拉加载更多是一件很牛x的事情,不是大神写不出来,我想大多数童鞋都是做项目用到时就百度,什么pulltorefresh,xlistview...也不看原理, ...
- Deploying Customizations in Oracle E-Business Suite Release 12.2
DeployingCustomizations in Oracle E-Business Suite Release 12.2 This documentdescribes how to deploy ...
- 【一天一道LeetCode】#119. Pascal's Triangle II
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Cocos2D:塔防游戏制作之旅(八)
如果所有东西通过检查,则创建一个新炮塔,将它放置在基座上,然后添加到towers数组中. 注意:在方法最后的bridge语法需要做一些解释.你下载的初始项目已经为一 些文件打开ARC,但不是Cocos ...