- 浏览: 7932962 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 2233http://t.cn/RZcCwZS 最近,Google的 ... -
(收藏)在WebView中如何让JS与Java安全地互相调用
2014-11-11 09:59 867在WebView中如何让JS与Java安全地互相调用 http ... -
android中的两端对齐
2013-02-08 18:58 3140在android中的webview中,可以对文本内容进行对 ... -
jQuery Mobile十大常用技巧
2012-10-12 07:23 4271原文发表在: http://mobile.51cto.com/ ... -
Android中使用log4j
2012-10-09 20:22 18329如果要直接在android工程中使用log4j,是有点问题 ... -
收集android的三个小tip
2012-08-25 11:24 2147收集android的三个小tip 1)Android 开发中 ... -
andorid中的html.fromhtml方法
2012-08-19 21:24 8847在android中,有一个容易遗忘的Html.fromht ... -
一个不错的sencha touch MVC教程分享
2012-08-18 10:06 2865http://blog.csdn.net/fyq891014/ ... -
jquery mobile中的按钮大集合
2012-08-14 22:17 3936本文小结了jquery mobile ... -
Andrid中的plurals
2012-08-10 19:29 1749在Android中的字符串资源中,今天留意到一个很特别的东 ... -
Android中listview中的button
2012-08-08 12:56 1979在androd中的listview中,假如每一项是个buu ... -
如何有更好的Android应用创意--从一款新Android应用说起
2012-07-20 14:23 5717现在这个年头,Android ... -
android中判断网络是否连接
2012-07-12 23:19 2935在android中,如何监测网络的状态呢,这个有的时候也是十分 ... -
android中设置手机的语言系
2012-05-19 15:55 2759adb shell 进入Android的Shell,输入以下命 ... -
android 按钮设计中state_selected属性
2012-05-15 22:33 8496在android中,如果搞几个tab,然后想做到当移动到某个T ... -
android中从图库中选取图片
2012-05-11 21:03 10283在android中,如何从图库gallary中挑选图片呢, ... -
android 模拟器中启用相机API支持
2012-05-10 22:37 3185android 模拟器中启用相机支持,否则如果应用中用到相关的 ... -
(转)向android模拟器打电话发短信的简单方法
2012-04-13 13:00 1996http://blog.csdn.net/pku_androi ... -
android 中让activity全屏幕显示
2012-04-12 09:06 1683android 中让activity全屏幕显示,这是一个小ti ... -
在Android中加入GOOGLE统计系统
2012-03-31 20:43 3462Google的统计分析系统,不仅在传统WEB统计中应用很广 ...
相关推荐
要在 Android 中使用 ECharts,我们需要在一个 Webview 中加载包含 ECharts 初始化代码的 HTML 页面。 - 通过集成 Webview,Android 应用可以调用 JavaScript 代码,进而利用 ECharts 提供的 API 来创建和操作图表...
在Android开发中,绘制各种图表是一项常见的需求,无论是用于数据可视化、用户界面设计还是数据分析展示。本教程将深入探讨如何在Android平台上实现柱状图和线形图的绘制,这些都是数据展示的重要工具。 首先,我们...
3. **动画逻辑**:ValueAnimator的使用会体现在对数据模型的更新以及重新绘制图表的过程中。开发者可能创建一个ValueAnimator实例,设置动画属性,并在动画更新回调中更新数据模型,然后调用`invalidate()`使View...
在Android应用开发中,数据可视化是一项重要的任务,它能够帮助用户直观地理解复杂的数据信息。`achartengine`是一个强大的开源类库,专门用于在Android平台上绘制各种图表,包括折线图、趋势图和饼图等。这个库以其...
在Android开发中,图表绘制是一项重要的任务,尤其在数据可视化、数据分析或用户界面设计中扮演着关键角色。本文将深入探讨Android平台上的图表绘制技术,包括基础概念、常用库以及各种图表类型的实现。 首先,我们...
在Android开发中,数据可视化是十分重要的,它能够帮助用户直观地理解应用程序中的信息和统计数据。本示例源码着重展示了如何在Android平台上动态绘制折线图、圆柱图和饼状图,这些都是数据可视化中常见的图表类型。...
在Android开发中,有时我们需要展示复杂的数据,如统计图表,这时可以借助第三方库来实现,例如"HelloCharts"。HelloCharts是一个轻量级且功能强大的图表库,支持多种类型的图表,包括线图、柱状图、饼图等,非常...
5. **绘制图表**:在Android的`View`上绘制图表,通常会在`Activity`或`Fragment`中创建一个`ChartView`并将其添加到布局中。 6. **处理交互**:如果需要,可以添加监听器来处理用户的触摸事件,如点击图表、拖动等...
在Android开发中,有时我们需要创建动态的、可定制的曲线图来展示数据,这通常涉及到自定义View的绘制。这个“android曲线图的绘制”是一个关于如何在Android平台上实现曲线图表的小型示例项目。该项目可能包含了一...
总之,在Android开发中,利用开源图表库可以方便地实现类似JFreeChart的图表功能。开发者需要根据项目需求选择合适的库,学习并掌握其用法,同时注意性能优化和用户体验,以实现高质量的图表展示。
在Android应用开发中,图形和图表的展示是至关重要的,特别是在数据分析、统计报告或用户界面设计方面。...无论是`AChartEngine`还是其他库,理解它们的工作原理并灵活运用,将是提升Android开发技能的重要步骤。
总之,AChartEngine是Android开发中一个实用的统计图表库,它提供了丰富的图表类型和高度可定制的选项。通过熟练掌握其使用,你可以轻松地在应用中创建美观且功能强大的数据可视化界面。在实际开发中,你可以根据...
在Android开发中,绘制图表是一项常见的任务,尤其在数据可视化、统计分析或者创建各种应用程序时。图表可以帮助用户直观地理解复杂的数据,使信息传递更为高效。Android提供了多种方式来实现图表的绘制,包括使用...
6. **实时更新**:在UI线程中使用Handler或RxJava来定时更新数据并重绘图表,确保心电图随数据变化而动态更新。同时要注意避免阻塞主线程,保持界面响应性。 7. **用户交互**:添加缩放、平移手势,使用户能详细...
在Android开发中,有时我们需要在屏幕上绘制出平滑的曲线,比如在绘制图表、游戏轨迹或者UI动画时。本教程将聚焦于如何使用贝塞尔曲线(Bezier Curve)通过若干个控制点来实现这一目标。贝塞尔曲线是一种在图形设计...
在Android应用开发中,图表的绘制是数据可视化的重要部分,尤其在数据分析、统计报告或用户界面展示时。本项目着重于使用ACHARTENGINE库来实现折线图、曲线图、柱形图和饼状图的绘制,这四种图表类型在各种应用场景...
在Android平台上,实现图表的绘制和展示是一项常见的需求,特别是在数据可视化和分析的应用中。本文主要探讨了四种方法,它们都是在Android环境中创建图表的有效途径。 首先,我们可以使用Google图表API来实现图表...
在Android开发中,XY图表是一种常见的数据可视化工具,它允许开发者以图形化的方式展示两个轴上的数据关系。这种图表类型通常用于科学计算、数据分析、金融图表等场景,可以帮助用户直观理解复杂的数据信息。本资源...
`achartengine-0[1].7.0.jar`是AChartEngine库的二进制文件,包含了库的所有功能,开发者可以直接将其导入到Android项目中使用。而`achartengine-0[1].7.0-demo-source.zip`则包含了示例代码,通过这些代码可以快速...
在Android开发中,绘制图形是常见且重要的任务之一,尤其在数据可视化或创建自定义UI时。本教程将深入探讨如何使用Android的核心组件——Canvas、Paint来绘制散点图。散点图是一种用点的位置来表示数据分布的图表,...