- 浏览: 427036 次
- 性别:
- 来自: 深圳/湛江
文章分类
最新评论
-
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
[ios]利用xcode自动生成项目文档 -
tiger1819:
有源码么,想学习
[android]仿360状态,类流量监控桌面浮动显示 -
119568242:
借我一双翅膀 写道大哥,求指教啊?
IOS 开发,调用打电话,发短信,打开网址 -
借我一双翅膀:
大哥,求指教啊
IOS 开发,调用打电话,发短信,打开网址 -
li247276297:
楼主 是不是要加个权限?
[android]仿360状态,类流量监控桌面浮动显示
最近打算研究一些开源android项目 mark一下
转自:http://blog.csdn.net/closewbq/article/details/6589547
最近在安卓2.2上写个实时的监控程序,要用到统计图。从网上搜了下
Java4Less (http://java4less.com/charts/chart.php?info=android)
- Chart4J (http://code.google.com/p/charts4j/)
- BlueChart (http://code.google.com/p/bluechart/)- aChartEngine (http://code.google.com/p/achartengine/)
- aiCharts (http://www.artfulbits.com/Android/aiCharts.aspx)
主要有以上几种。
java4Less统计的图的形状还算好看,但是如果屏幕分辨率很小的时候,不能进行缩放。
aChartEngine这个东西api太过于简单,支持的东西也太少,但是可以进行缩放。
aiCharts 这个东东做的比较好,基本达到了.net中Chart控件的水平,可是要收费。用试用版的话,还要给你带个试用的标记。(这个垃圾- -!)
最终决定用aChartEngine进行统计。
我想说的是不是如何去使用aChartEngine画图,而是想说说我碰到的问题。
以上是aChartEngine-6.0所有的类
如果你想X轴显示时间并且要画的长方形图的话,那么麻烦来了。X轴如果想要显示时间的话,要使用TimeChart,而TimeChart继承与LineChart,也就是说,TimeChart只能显示线性的统计图。my god!这什么东西呀,做的也太不行了吧,我顿时就恼火了。那我X轴既要显示时间,又要显示长方形图怎么办?以下是我的解决方案。
如果想要显示长方形图,我们只能采用BarChart了,所以只能在它上面动手脚。
以下是我做的例子,供碰到同样的问题的鞋子们参考:
期望功能:以长方形图显示31天内的数据信息。
- import java.util.Calendar;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import org.achartengine.ChartFactory;
- import org.achartengine.chart.BarChart.Type;
- import org.achartengine.model.CategorySeries;
- import org.achartengine.model.XYMultipleSeriesDataset;
- import org.achartengine.renderer.XYMultipleSeriesRenderer;
- import org.achartengine.renderer.XYSeriesRenderer;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.Color;
- public class Recent31DayActivity {
- private static Map<String, Double> map = new TreeMap<String, Double>();
- private static XYMultipleSeriesRenderer getBarDemoRenderer() {
- XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
- renderer.setAxisTitleTextSize(12);
- renderer.setChartTitleTextSize(12);
- renderer.setLabelsTextSize(12);
- renderer.setLegendTextSize(12);
- renderer.setMargins(new int[] { 20, 30, 15, 0 });
- XYSeriesRenderer r = new XYSeriesRenderer();
- r.setColor(Color.RED);
- renderer.addSeriesRenderer(r);
- return renderer;
- }
- private static void setChartSettings(XYMultipleSeriesRenderer renderer) {
- renderer.setChartTitle("最近31天");
- renderer.setXTitle("时间-天");
- renderer.setYTitle("发电量(Kw/h)");
- renderer.setYAxisMin(0);
- renderer.setXAxisMin(0.5);
- renderer.setXAxisMax(12.5);
- renderer.setShowLegend(false);
- renderer.setShowLabels(true);
- renderer.setShowGrid(true);
- renderer.setXLabels(1);
- renderer.setDisplayChartValues(true);
- renderer.setBarSpacing(0.5);
- renderer.setBackgroundColor(Color.WHITE);
- }
- private static XYMultipleSeriesDataset getBarDataset(Context cxt) {
- XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
- CategorySeries series = new CategorySeries("最近31天"); Calendar c = Calendar.getInstance();
- int month = c.get(Calendar.DAY_OF_MONTH)+1;
- int day =c.get(Calendar.DAY_OF_MONTH);
- map.put((month<10?("0"+month):month) + "-"
- + (day<10?("0"+day):day), 0.0);
- for (int i = 0; i <= 30; i++) {
- c.add(Calendar.DAY_OF_YEAR, -1);
- day=c.get(Calendar.DAY_OF_MONTH);
- month=c.get(Calendar.MONTH) + 1;
- map.put((month<10?("0"+month):month) + "-"
- + (day<10?("0"+day):day), 0.0);
- }
- //这里的list是我取出一个对象列表,自己可以找别的数据代替
- if (list != null && list.size() > 0) {
- for (int i = 0; i < list.size(); i++) {
- if (map.containsKey(key)) {
- map.put(key, min.getElectricalEnergy());
- }
- }
- }
- for (String key : map.keySet()) {
- series.add(key, Utils.getDoublePointTwo(map.get(key)));
- }
- dataset.addSeries(series.toXYSeries());
- return dataset;
- }
- public Intent Recent31DayActivity(Context context) {
- XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
- setChartSettings(renderer);
- Intent intent = ChartFactory.getBarChartIntent(context,
- getBarDataset(context), renderer, Type.DEFAULT);
- int count = 1;
- //这里比较重要,这里手动给X轴填刻度。有多少条内容,你就要天多少个刻度,这样X轴就显示的是时间,也能显示出长方形图
- for (String key : map.keySet()) {
- renderer.addTextLabel(count, key);
- count++;
- }
- return intent;
- <blockquote>}</blockquote>
如果大家有什么不明白的话,或者对属性设置不明白的话,可以问我。不过这东西api就那么几个类,看api文档就够了。
发表评论
-
[android]使用 Matrix 的随触摸旋转的ImageView
2013-02-22 01:58 7924使用 Matrix 的随触摸旋转的ImageView 突 ... -
[android]动态改变按钮背景状态 StateListDrawable
2012-10-29 10:52 1473动态改变按钮背景状态 很少用到 上次和六哥聊到。 ... -
[android]ViewPage上无法通过onKeyDown()获得按钮事件
2012-08-20 04:53 1366系统无法监听到遥控器在VewPage上的按钮事件,如需 ... -
[android]待解决 lisTview 的onItemSelected 监听事件焦点的问题。
2012-08-18 21:18 2177今天遇到个问题 到目前为止 一直不理解为什么 大概描述下布局 ... -
[android]layout_weight 在layout_width 为fill_parent 与wrap_content 时的不同含义
2012-08-12 12:52 1271转自:http://hi.baidu.com/l ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 4032研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 3研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]仿制新浪微博消息页面 图标切换动画
2012-08-10 17:33 0研究了下以前不怎么用到的动画效果的实现 顺便做了一个新浪微 ... -
[android]Activity切换动画
2012-08-10 12:23 1479今天准备比赛的时候 遇到了这个问题。 查了些资料 ... -
android中ADT版本问题:无故报 java.lang.NoClassDefFoundError
2012-07-31 22:08 1793今天修改一个老项目的时候,发现在所有配置正确的情况下,代目无任 ... -
[android]仿360状态,类流量监控桌面浮动显示
2012-05-27 22:03 6031前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮 ... -
[转]android开发问题记录 "founderapp"
2012-02-08 10:48 1072这段时间,由于某种原因,一直在做android手机开发, ... -
关于weight
2012-02-05 21:20 844layout_weight=1后,除了其它的控件之外剩 ... -
判断SD卡是否存在
2012-02-02 17:54 873android.os.Environment.getEx ... -
[转]Android文件管理器介绍
2012-02-02 16:50 3082转自:http://www.linuxidc.com/L ... -
[转]Android文件管理器介绍
2012-02-02 16:49 5转自:http://www.linuxidc.com/L ... -
[转]android 几何图形的绘制
2012-02-01 16:06 2193转自:http://byandby.iteye.c ... -
Android菜鸟日记32-游戏中的碰撞
2012-01-11 23:09 1755Android菜鸟日记 32-游戏中的碰撞 一、 ... -
Android菜鸟日记31-selector 中使用 shape
2012-01-11 23:05 1614Android菜鸟日记 31- ... -
Android菜鸟日记30-View与SurfaceView
2012-01-11 22:45 949Android菜鸟日记 30 View与Surfa ...
相关推荐
对于数据的可视化,之前,是想直接用Canvas 来画,不过,评估了一下,工作量挺大的,因为,是一个人开发,而且是从零开始,如果写一个Canvas 画报表的方法,太费时间了,于是,上网找了一下,使用AchartEngine,...
本篇文章将详细探讨如何在Android应用中实现折线图,主要涉及两个库:AChartEngine和iChartJS。 首先,我们来看AChartEngine。AChartEngine是一个开源的Android图表库,它提供了丰富的图表类型,包括折线图、柱状图...
**Android柱状曲线等统计图AChartEngine** 在Android应用开发中,数据可视化是一个重要的环节,可以帮助用户更直观地理解复杂的数据。AChartEngine就是这样一款强大的图表库,它专为Android平台设计,允许开发者...
AChartEngine广泛应用于数据分析、统计报告、金融应用、健康追踪等领域。例如,开发一款股票应用时,可以用它来绘制K线图;在健康管理应用中,可以展示用户的运动数据,如步数、心率等。 总之,AChartEngine是...
`achartengine`是一个强大的开源库,专为Android平台设计,提供了丰富的图表绘制功能,使得开发者能够轻松地在应用程序中集成各种图表,如折线图、柱状图、饼图、散点图等。 `achartengine`库的核心概念是图表引擎...
AChartEngine是一个轻量级且功能强大的图表库,专为Android平台设计,提供了丰富的图表类型,如柱状图、折线图等,便于开发者在应用中实现数据展示。本篇文章将深入探讨AChartEngine库的使用,通过实例分析其核心...
`ACHartEngine`是一个非常实用的库,它为Android开发者提供了一种简单易用的方式来实现这些需求。这个库已经被广泛地使用,并且在不断更新中,以适应更多的图形绘制需求。在本文中,我们将深入探讨`ACHartEngine`的...
总结来说,AChartEngine是一个适用于Android的统计图表库,能够帮助开发者快速实现柱形图、饼状图和折线图。通过其提供的各种图表构建器和渲染器,可以定制化图表的外观和行为,以满足不同的数据可视化需求。只需...
描述中提到"Android使用AChartEngine画折线图统计图",这意味着此项目将特别关注折线图的实现。折线图是一种常用的数据表示方式,适合显示数据随时间的变化趋势。AChartEngine提供了绘制折线图的API,允许开发者设置...
`AChartEngine`是一个强大的开源库,专为Android平台设计,用于创建各种类型的图表,包括折线图、柱状图、饼图等。本文将深入探讨`AChartEngine`在Android图形报表中的应用,并通过提供的`AChartEngineTest`源码来...
现在是信息飞速发展时代,单个的统计图已经无法满足实际生产的要求,人们只想通过快速的观察就能知道很多信息,所以组合统计图就运用而生了,诸如,人们想了解一个地方的大致情况,首先可能要了解当地的天气情况,...
AChartEngine是一个强大的开源图表库,专为Android平台设计,用于在应用程序中创建各种图表,如线图、柱状图、饼图、散点图等。这个`achartengine-read-only.zip`文件包含了AChartEngine的只读源代码,允许开发者...
- AChartEngine:提供简单API,支持基本的统计图形。 - Charts4Android:Google的Material Design图表库,适用于新式Android应用。 3. **图形绘制**: - 使用View或SurfaceView自定义绘制:开发者可以直接继承...
这个“achartengine生成柱状图demo”就是展示如何利用`achartengine`库在Android应用中实现柱状图的实例。 首先,我们需要理解柱状图的基本概念。柱状图是一种统计图表,通过一系列垂直条形的高度来表示数据的大小...
在Android应用中,圆饼图常用于数据分析、统计报告或资源分配情况的展示。AChartEngine的圆饼图功能允许开发者指定各个扇区的值和颜色,同时可以添加标签和百分比显示。在提供的示例中,开发者可以学习如何构造数据...
"android 多种统计图实现的源码"提供了丰富的图形绘制能力,包括折线图、柱状图、饼图、点图以及它们的混合形式,如折线图与柱状图的组合。这些图形类型在许多应用场景下都非常实用,比如业务报表、数据分析应用、...
ACHartEngine是一个强大的开源库,专为Android平台设计,用于绘制各种图表,如折线图、柱状图、饼图等。本文将深入探讨ACHartEngine的源码,揭示其工作原理,帮助开发者更好地理解和利用这个工具。 一、...
**Achartengine** 是一个专为Android平台设计的开源图形库,它允许开发者轻松地在应用程序中集成各种类型的图表和统计图。这个强大的工具提供了丰富的功能,使得数据可视化变得简单而直观,尤其对于数据分析和报告...
总结来说,AChartEngine 0.1.7.0是Android开发者的一个强大工具,可以帮助他们快速实现数据可视化,无论是简单的统计图表还是复杂的金融股表图,都能通过其灵活的API进行构建。通过提供的示例代码,开发者可以迅速...
在这个"使用AChartengine画折线图Demo"中,我们将深入探讨如何利用AChartEngine库在Android应用中绘制折线图,以展示动态数据或统计信息。 首先,我们需要在项目中集成AChartEngine库。这通常通过添加依赖或下载库...