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实现地图区域数据统计-展示数据
我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...
随机推荐
- java项目管理工具maven使用初级
一.前言 早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础 ...
- IE下的deflate模式
浏览器有一个非常有用的特性:自动解压. 在使用AJAX请求数据的时候,数据在服务器端压缩传输,在浏览器端自动解压,请求直接得到解压后的结果. 在Request Header中,一般会列出浏览器支持的压 ...
- 【移动开发】 Android隐藏输入法软键盘的一些说明
刚刚在写一个仿微信的Android聊天软件,在编写的过程中,发现一个严重的BUG---当用户点击输入框用软键盘输入文本的时候点击了"返回好友列表"的按钮,返回到好友列表时软键盘无法 ...
- 为什么不要在viewDidLoad方法中设置开始监听键盘通知
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一个普遍的错误是,程序猿(媛)试图在view controll ...
- JDBC存储和读取二进制数据
以下JSP文件用common-fileupload组件实现文件上传,并将文件以二进制文件的形式存入数据库 <% if("POST".equalsIgnoreCase(requ ...
- iOS中 Realm错误总结整理 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! 一.错误信息:Attempting to modify object outside of a write tra ...
- 解析JSON的三种方式
JSONObject JSONObject jsonObject = new JSONObject(strJson); JSONArray jsonArray = jsonObject.getJS ...
- Android简易实战教程--第五话《开发一键锁屏应用》
转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/51860900 点击打开链接 Device Administration 对于这个应 ...
- Scipy教程 - 优化和拟合库scipy.optimize
http://blog.csdn.net/pipisorry/article/details/51106570 最优化函数库Optimization 优化是找到最小值或等式的数值解的问题.scipy. ...
- UNIX网络编程——经常使用的套接字选项
1.设置/获取套接字选项 int setsockopt(int socket, int level, int option_name, const void *option_value, sockle ...