- 浏览: 7865049 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
本文原文发表在http://tech.it168.com/a2011/0603/1200/000001200313.shtml
乃本人作品,不得转载
在日常的统计中,经常要用图表来给用户恰当的数据体验,比如用饼状图,柱型图等。在传统的web中,有比较多的开源的这方面的解决方案。本文将简单介绍如何在Android中,如何使用开源工具库来展示图表。
在Android中,有三种解决方案,分别是:
1) 使用google 图表 api
2) 使用Achartengine库(http://www.achartengine.org/)
3) 使用chartdroid库(http://code.google.com/p/chartdroid/)
下面分别进行介绍:
使用google 图表api
第一种方法是使用google的图表API。可以到如下这个地址去申请使用google 图表API
(http://code.google.com/apis/chart/)。这个API特别适合去生成饼状图。调用的格式如下即可:
http://chart.apis.google.com/chart?cht=p3&chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks
其中cht=p3表示生成的是一个饼状图;chd=t:30,60,10表示要生成三个部分的数据,分别是30,60,10,当然也可以其他更复杂的数据形式。
chs=250*100表示的是图型的大小(宽度*高度);chl=cars|bikes|trucks指出了这三部分数据内容的文字标签,即实际上显示在图表上的。
使用方法很简单,只需要在oncreate事件中如下调用即可:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView googleChartView = new WebView(this);
setContentView(googleChartView);
String mUrl = "http://chart.apis.google.com/chart?cht=p3& chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks";
googleChartView.loadUrl(mUrl);
}
因为要连接网络,所以要在配置文件中允许使用网络,在AndroidManifest.xml中如下配置:
<uses-permission android:name="android.permission.INTERNET" />
关于google 图表API更多的资料请参考http://code.google.com/intl/zh-CN/apis/chart/image/docs/making_charts.html
,但这种方案有个缺点,就是必须要联上网络,才能访问其API,生成图形。
2) 使用Achartengine库
第二种解决方案是使用Achartengine库,下载地址在:
http://code.google.com/p/achartengine/downloads/list
,将其JAR下载后,放到工程的lib包库中,结构如下图:
代码如下:
public class AChartExample {
public Intent 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("cars ", 30);
categorySeries.add("trucks", 20);
categorySeries.add("bikes ", 60);
return ChartFactory.getPieChartIntent(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);
}
return renderer;
}
}
在上面的代码中,首先将初始化了colors数组,这里指定了饼图的三种颜色,然后在buildCategoryRenderer方法中,使用SimpleSeriesRenderer类实例来进行初始化,分别设置了饼图要显示的系列区域的颜色。而我们将要显示的数据及标签内容都放到categorySeries中进行显示。最后调用ChartFactory的getPieChartIntent方法,传入categorySeries和renderer即可。
在我们的主类中,进行如下调用:
Intent achartIntent = new AChartExample().execute(this);
startActivity(achartIntent);
最后生成的效果如下图:
3) 使用Chartdroid
第三种方法是使用chartdroid,要注意的是,如果使用这种方法的话,必须先下载并安装Chardroid这个APK,下载地址在:http://code.google.com/p/chartdroid/downloads/list,下载并将其APK包进行安装。
要使用Chartdroid,必须要使用content provider,我们编写代码如下:
public class ChartDroidDataProvider extends ContentProvider {
static final String AUTHORITY = "com.xyz.contentprovider.chardroid";
@Override
public String getType(Uri uri) {
return "vnd.android.cursor.dir/vnd.com.googlecode.chartdroid.graphable";
}
public static final Uri PROVIDER_URI = new Uri.Builder().scheme(
ContentResolver.SCHEME_CONTENT).authority(AUTHORITY).build();
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
//获得实际数据
MatrixCursor c = new MatrixCursor(new String[] { BaseColumns._ID,
"COLUMN_AXIS_INDEX", "COLUMN_SERIES_INDEX",
"COLUMN_DATUM_VALUE", "COLUMN_DATUM_LABEL" });
c.newRow().add(1).add(0).add(1).add(30).add(null);
c.newRow().add(2).add(0).add(1).add(10).add(null);
c.newRow().add(3).add(0).add(1).add(60).add(null);
return c;
}
}
在上面的代码中,我们使用了MatrixCursor生成了相关的数据:30,10,60。关于ChartDroid的详细ContentProvider信息,请参考http://code.google.com/p/chartdroid/wiki/InterfaceSpecification。接下来,我们看使用的代码,如下:
Intent chartDroidIntent = new Intent(Intent.ACTION_VIEW,
ChartDroidDataProvider.PROVIDER_URI);
chartDroidIntent.putExtra(Intent.EXTRA_TITLE, "Chart droid");
chartDroidIntent
.addCategory("com.googlecode.chartdroid.intent.category.PIE_CHART");
startActivity(chartDroidIntent);
注意,这里要使用charDroidIntent的addCategory方法去指定图表的类型,即
com.googlecode.chartdroid.intent.category.PIE_CHART。下图是运行效果:
试试这个地址啊http://chart.apis.google.com/chart?chs=300x225&cht=p3&chd=s:Uf9a&chdl=30%C2%B0|40%C2%B0|50%C2%B0|60%C2%B0
乃本人作品,不得转载
在日常的统计中,经常要用图表来给用户恰当的数据体验,比如用饼状图,柱型图等。在传统的web中,有比较多的开源的这方面的解决方案。本文将简单介绍如何在Android中,如何使用开源工具库来展示图表。
在Android中,有三种解决方案,分别是:
1) 使用google 图表 api
2) 使用Achartengine库(http://www.achartengine.org/)
3) 使用chartdroid库(http://code.google.com/p/chartdroid/)
下面分别进行介绍:
使用google 图表api
第一种方法是使用google的图表API。可以到如下这个地址去申请使用google 图表API
(http://code.google.com/apis/chart/)。这个API特别适合去生成饼状图。调用的格式如下即可:
http://chart.apis.google.com/chart?cht=p3&chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks
其中cht=p3表示生成的是一个饼状图;chd=t:30,60,10表示要生成三个部分的数据,分别是30,60,10,当然也可以其他更复杂的数据形式。
chs=250*100表示的是图型的大小(宽度*高度);chl=cars|bikes|trucks指出了这三部分数据内容的文字标签,即实际上显示在图表上的。
使用方法很简单,只需要在oncreate事件中如下调用即可:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView googleChartView = new WebView(this);
setContentView(googleChartView);
String mUrl = "http://chart.apis.google.com/chart?cht=p3& chd=t:30,60,10&chs=250x100&chl=cars|bikes|trucks";
googleChartView.loadUrl(mUrl);
}
因为要连接网络,所以要在配置文件中允许使用网络,在AndroidManifest.xml中如下配置:
<uses-permission android:name="android.permission.INTERNET" />
关于google 图表API更多的资料请参考http://code.google.com/intl/zh-CN/apis/chart/image/docs/making_charts.html
,但这种方案有个缺点,就是必须要联上网络,才能访问其API,生成图形。
2) 使用Achartengine库
第二种解决方案是使用Achartengine库,下载地址在:
http://code.google.com/p/achartengine/downloads/list
,将其JAR下载后,放到工程的lib包库中,结构如下图:
代码如下:
public class AChartExample {
public Intent 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("cars ", 30);
categorySeries.add("trucks", 20);
categorySeries.add("bikes ", 60);
return ChartFactory.getPieChartIntent(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);
}
return renderer;
}
}
在上面的代码中,首先将初始化了colors数组,这里指定了饼图的三种颜色,然后在buildCategoryRenderer方法中,使用SimpleSeriesRenderer类实例来进行初始化,分别设置了饼图要显示的系列区域的颜色。而我们将要显示的数据及标签内容都放到categorySeries中进行显示。最后调用ChartFactory的getPieChartIntent方法,传入categorySeries和renderer即可。
在我们的主类中,进行如下调用:
Intent achartIntent = new AChartExample().execute(this);
startActivity(achartIntent);
最后生成的效果如下图:
3) 使用Chartdroid
第三种方法是使用chartdroid,要注意的是,如果使用这种方法的话,必须先下载并安装Chardroid这个APK,下载地址在:http://code.google.com/p/chartdroid/downloads/list,下载并将其APK包进行安装。
要使用Chartdroid,必须要使用content provider,我们编写代码如下:
public class ChartDroidDataProvider extends ContentProvider {
static final String AUTHORITY = "com.xyz.contentprovider.chardroid";
@Override
public String getType(Uri uri) {
return "vnd.android.cursor.dir/vnd.com.googlecode.chartdroid.graphable";
}
public static final Uri PROVIDER_URI = new Uri.Builder().scheme(
ContentResolver.SCHEME_CONTENT).authority(AUTHORITY).build();
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
//获得实际数据
MatrixCursor c = new MatrixCursor(new String[] { BaseColumns._ID,
"COLUMN_AXIS_INDEX", "COLUMN_SERIES_INDEX",
"COLUMN_DATUM_VALUE", "COLUMN_DATUM_LABEL" });
c.newRow().add(1).add(0).add(1).add(30).add(null);
c.newRow().add(2).add(0).add(1).add(10).add(null);
c.newRow().add(3).add(0).add(1).add(60).add(null);
return c;
}
}
在上面的代码中,我们使用了MatrixCursor生成了相关的数据:30,10,60。关于ChartDroid的详细ContentProvider信息,请参考http://code.google.com/p/chartdroid/wiki/InterfaceSpecification。接下来,我们看使用的代码,如下:
Intent chartDroidIntent = new Intent(Intent.ACTION_VIEW,
ChartDroidDataProvider.PROVIDER_URI);
chartDroidIntent.putExtra(Intent.EXTRA_TITLE, "Chart droid");
chartDroidIntent
.addCategory("com.googlecode.chartdroid.intent.category.PIE_CHART");
startActivity(chartDroidIntent);
注意,这里要使用charDroidIntent的addCategory方法去指定图表的类型,即
com.googlecode.chartdroid.intent.category.PIE_CHART。下图是运行效果:
评论
2 楼
Williamyuan86
2011-08-03
xihuan&java 写道
请问楼主
我用google 图表 api 显示图表
图表怎么显示不出来呀,一片空白
我用google 图表 api 显示图表
图表怎么显示不出来呀,一片空白
试试这个地址啊http://chart.apis.google.com/chart?chs=300x225&cht=p3&chd=s:Uf9a&chdl=30%C2%B0|40%C2%B0|50%C2%B0|60%C2%B0
1 楼
xihuan&java
2011-06-24
请问楼主
我用google 图表 api 显示图表
图表怎么显示不出来呀,一片空白
我用google 图表 api 显示图表
图表怎么显示不出来呀,一片空白
发表评论
-
『Google发布移动Web性能工具PCAP Web Performance Analyzer』
2015-01-06 14:17 2185http://t.cn/RZcCwZS 最近,Google的 ... -
(收藏)在WebView中如何让JS与Java安全地互相调用
2014-11-11 09:59 834在WebView中如何让JS与Java安全地互相调用 http ... -
android中的两端对齐
2013-02-08 18:58 3105在android中的webview中,可以对文本内容进行对 ... -
jQuery Mobile十大常用技巧
2012-10-12 07:23 4227原文发表在: http://mobile.51cto.com/ ... -
Android中使用log4j
2012-10-09 20:22 18280如果要直接在android工程中使用log4j,是有点问题 ... -
收集android的三个小tip
2012-08-25 11:24 2121收集android的三个小tip 1)Android 开发中 ... -
andorid中的html.fromhtml方法
2012-08-19 21:24 8803在android中,有一个容易遗忘的Html.fromht ... -
一个不错的sencha touch MVC教程分享
2012-08-18 10:06 2840http://blog.csdn.net/fyq891014/ ... -
jquery mobile中的按钮大集合
2012-08-14 22:17 3916本文小结了jquery mobile ... -
Andrid中的plurals
2012-08-10 19:29 1719在Android中的字符串资源中,今天留意到一个很特别的东 ... -
Android中listview中的button
2012-08-08 12:56 1952在androd中的listview中,假如每一项是个buu ... -
如何有更好的Android应用创意--从一款新Android应用说起
2012-07-20 14:23 5678现在这个年头,Android ... -
android中判断网络是否连接
2012-07-12 23:19 2903在android中,如何监测网络的状态呢,这个有的时候也是十分 ... -
android中设置手机的语言系
2012-05-19 15:55 2729adb shell 进入Android的Shell,输入以下命 ... -
android 按钮设计中state_selected属性
2012-05-15 22:33 8438在android中,如果搞几个tab,然后想做到当移动到某个T ... -
android中从图库中选取图片
2012-05-11 21:03 10260在android中,如何从图库gallary中挑选图片呢, ... -
android 模拟器中启用相机API支持
2012-05-10 22:37 3160android 模拟器中启用相机支持,否则如果应用中用到相关的 ... -
(转)向android模拟器打电话发短信的简单方法
2012-04-13 13:00 1958http://blog.csdn.net/pku_androi ... -
android 中让activity全屏幕显示
2012-04-12 09:06 1661android 中让activity全屏幕显示,这是一个小ti ... -
在Android中加入GOOGLE统计系统
2012-03-31 20:43 3429Google的统计分析系统,不仅在传统WEB统计中应用很广 ...
相关推荐
android 开发中经常会用到绘制各种图表,例如折线图 趋势图、饼图。这个开源的项目为各种图形的制作提供了完美的解决方案,API很完善、方便我们定制个性需求的图表展示
在Android开发中图形图表的绘制控件,里面有多种图形绘制
主要介绍了Android开发中使用achartengine绘制各种图表的方法,结合具体实例形式分析了Android基于图表生成类库achartengine进行图表绘制的具体步骤与相关操作技巧,需要的朋友可以参考下
android上绘制统计图表的例子,使用achartengine框架
欢迎使用LiveChart存储库:waving_hand:LiveChart是一个开放源代码的Android库,可以绘制精美而功能强大的图表。 该库允许使用易于学习的描述性API来自定义颜色和数据显示。 从一条简单的线绘制到带有界限和基线的...
achartengine-0[1].7.0-demo-source.zip android开发股表图表,统计图表的开源引擎,demo及jar包
的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...
"Android实现图表绘制和展示","断点续传下载","常用Intent.Action","图片缩放圆角倒影Bitmap/Drawable转换", "SlidingDrawer抽屉效果","Android顶部与底部菜单","GroupActivity测试","Android平台水波效果源码",...
自定义View学习之几何图形的绘制:维度图表绘制(模仿京东白条个人信用评分维普图的绘制)
Android端绘制图表所需的开发包,以android sutdio为例,将其放在具体项目的lib文件夹下,在dependecies中配置即可。压缩包里面含有多个版本,可供选择。
AndroidPlot Demo是Android中非常强大的图表Demo,可以绘制各种图形
achartengine是个不错的数据统计图组件,可以轻松绘制各类统计图表, 线图 面积图 散点图 时间图 条图 饼图 气泡图 圆环图 条形图范围(高至低) 立方线图
第一篇 Android开发初步 第1章 Android初识 1.1 Android简介 1.1.1 认识Android 1.1.2 Android系统框架 1.1.3 应用程序框架 1.2 Eclipse开发环境 1.2.1 安装ADT插件 1.2.2 安装SDK 1.2.3 配置源代码 1.2.4 创建AVD ...
而我认识的一些Android开发的朋友其实对自定义View相关的了解也比较少,所以我的想法就是做一个对不了解自定义View的人可以通过方法可以自由的配置,对初步了解自定义View的人提供基础,能更方便的实现自己需要的...
好用的android图表插件,用于绘制柱状图,饼图,折线图等
Android 一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导开发 IOS 由苹果公司开发的移动操作系统 Webkit 一个开源的浏览器引擎,在手机上的...
一整套的图标绘制控件,觉得好的,请真心赞一个!无私贡献出来。
系统主要功能包括血压检测、血糖检测、心脏听诊录音、相关健康信息收集等模块,主要使用的技术有AndroidUI设计、SQLite轻量级数据库存储健康信息、Android蓝牙通信协议及数据传输、图形绘制、摄像头采集图像加工和...
AAChartCore是Java的语言版本这是面向对象的,一组的易于使用,极其高雅图形绘制控制,基于流行的开源前端图表库Highcharts。 这样可以非常快速地向您的移动项目中添加交互式图表。 它支持单点触摸进行数据检查,...