- 浏览: 153099 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xjk112:
2015-05-08 13:21
我奋斗了18年才和你坐在一起喝咖啡[转] -
sandy_vv:
给达内广告,收费 ?
Java 利用url下载MP3保存到本地 -
78945612:
哥们
这个对于初学者怎么整呢?
android 定时关机 -
cn23snyga:
请教贵博,用ACE 绘制出的图表,可以捕捉到点击事件的坐标值 ...
使用achartengine开发曲线图相关的Android应用程序(zhuan) -
qi19901212:
楼主你好,我开发的achartengine放在 scrollv ...
Android开发工具之AChartEngine
应用程序的开发过程中,经常会遇到和曲线图打交道的情况,相比自己写代码绘制,无疑的,使用一些美观高效的开源库是一个更好的选择。目前开源的曲线图绘制工作有很多,本文以achartengine为例,介绍在Android系统下开发曲线图相关程序的有关方法。
AChartEngine是专为Android系统设计的图形库,可以用于绘制多种图表,具体列表如下,且每张图上都支持多条曲线:
line chart ; area chart ; scatter chart ; time chart ; bar chart ;
pie chart ; bubble chart ; doughnut chart ; range (high-low) bar chart ;
下面主要介绍画line chart的方法:
几个主要的类:
XYMultipleSeriesRenderer renderer; //曲线图的格式,包括颜色,值的范围,点和线的形状等等
XYMultipleSeriesDataset dataset; //保存点集数据 ,包括每条曲线的X,Y坐标
对图表而言几个重要的变量:
String[] titles; //每条曲线的名称
List<double []> x; //点集的x坐标
List<double []> y; //点集的y坐标
int[] colors; //每条曲线的颜色
PointStyle[] styles; //每条曲线点的形状
XYMultipleSeriesRenderer中的一些重要的方法,由名称可以看出具体功能:
public void addSeriesRenderer(SimpleSeriesRenderer renderer)
public void removeSeriesRenderer(SimpleSeriesRenderer renderer)
public SimpleSeriesRenderer getSeriesRendererAt(int index)
public void setBackgroundColor(int color)
public void setAxesColor(int color)
public void setLabelsColor(int color)
public void setShowAxes(boolean showAxes)
public void setChartTitle(String title)
public void setChartTitleTextSize(float textSize)
public void setXTitle(String title)
public void setAxisTitleTextSize(float textSize)
public void setXAxisMin(double min)
public void setXAxisMax(double max)
public void setYTitle(String title)
public void setYAxisMin(double min)
public void setYAxisMax(double max)
XYMultipleSeriesDataset中的一些重要方法,由名称可看出具体功能:
public void addSeries(XYSeries series)
public void removeSeries(int index)
public void removeSeries(XYSeries series)
AChartEngine的事例代码中提供了一些管理XYMultipleSeriesDataset和XYMultipleSeriesRenderer的方式,通过buildRenderer,setChartSettings,buildDataset来实现,减少了分条目设置属性的麻烦,具体见代码中的函数。
下文代码在一张图中绘制了两条曲线,并在主窗体中显示出来:
package net.ispiders;
import java.util.ArrayList;
import java.util.List;
import org.achartengine.ChartFactory;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
public class chartDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] titles = new String[] { "First", "Second"};
List x = new ArrayList();
List y = new ArrayList();
x.add(new double[] { 1, 3, 5, 7, 9, 11} );
x.add(new double[] { 0, 2, 4, 6, 8, 10} );
y.add(new double[] { 3, 14, 5, 30, 20, 25});
y.add(new double[] { 18, 9, 21, 15, 10, 6});
XYMultipleSeriesDataset dataset = buildDataset(titles, x, y);
int[] colors = new int[] { Color.BLUE, Color.GREEN};
PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE, PointStyle.DIAMOND};
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles, true);
setChartSettings(renderer, "Line Chart Demo", "X", "Y", -1, 12, 0, 35 , Color.WHITE, Color.WHITE);
View chart = ChartFactory.getLineChartView(this, dataset, renderer);
setContentView(chart);
}
protected XYMultipleSeriesDataset buildDataset(String[] titles,
List xValues,
List yValues)
{
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
int length = titles.length; //有几条线
for (int i = 0; i < length; i++)
{
XYSeries series = new XYSeries(titles[i]); //根据每条线的名称创建
double[] xV = xValues.get(i); //获取第i条线的数据
double[] yV = yValues.get(i);
int seriesLength = xV.length; //有几个点
for (int k = 0; k < seriesLength; k++) //每条线里有几个点
{
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
return dataset;
}
protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles, boolean fill)
{
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
int length = colors.length;
for (int i = 0; i < length; i++)
{
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
r.setFillPoints(fill);
renderer.addSeriesRenderer(r);
}
return renderer;
}
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title,
String xTitle,String yTitle, double xMin,
double xMax, double yMin, double yMax,
int axesColor,int labelsColor)
{
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
}
发表评论
-
Android开发之Tools
2011-10-02 00:19 948AChartEngine is a charting libr ... -
或许您还不知道的八款开源Android游戏引擎
2011-09-29 12:38 808很多初学Android游戏开发 ... -
Android开发工具之AChartEngine
2011-09-29 12:11 3140最近在做一个关于股票的软件(for Android),在软件中 ... -
android 事件处理(转)
2011-09-15 12:14 1126android中的事件类型分为按键事件和屏幕触摸事件,Touc ... -
android paint设置字体 中文字体 楷体 和自动换行方法(zhuan)
2011-09-14 16:19 3881Bitmap bmp = BitmapFactory.deco ... -
Android Canvas类介绍(zhuan)
2011-09-14 14:57 982当我们调整好画笔之后,现在需要绘制到画布上,这就得用Can ... -
Android Canvas类介绍(zhuan)
2011-09-14 14:56 0当我们调整好画笔之后,现在需要绘制到画布上,这就得用Can ... -
Android OpenGL之生成FloatBuffer
2011-09-06 08:56 1527public FloatBuffer getFloatBuff ... -
Activity之间的跳转(A-B-A)
2011-09-05 12:29 1065Activity A 中: Intent intent ... -
Android OpenGL相关
2011-09-02 15:46 7470x10000是出于OPENGL前期内存节约的考虑, 以INT ... -
Android 返回键
2011-09-01 17:11 1101@Override public boolean onK ... -
android selector(zhuan)
2011-08-30 10:06 586<?xml version="1.0" ... -
android 定时关机
2011-08-29 10:19 1315Calendar calendar = Calendar.ge ... -
android 相关2
2011-08-25 12:31 806AndroidManifest.xml的activity里加a ... -
Android ListView刷新 (Handler/Service)
2011-08-03 21:40 2153本文转自http://blog.sina.com.cn/s/b ... -
Android 中的ListView内容刷新问题(转)
2011-08-03 21:22 1226本文转自http://www.linuxidc.com/Lin ... -
android listview
2011-08-03 21:21 883Android 中的ListView内容刷新 对于ListV ... -
android相关
2011-07-21 12:48 829android:screenOrientation=" ... -
Android中JNI程序的编写(zhuan)
2011-07-15 18:48 994zhuan(http://luco1130.blog.163. ... -
Android_Handler,Looper,Message深入分析
2011-04-07 18:49 1541在网上有许多资料对这三者关系的分析,但都比较笼统不够细 ...
相关推荐
在Android开发中,有时我们需要展示数据的变化趋势,这时动态曲线图是一种非常有效的视觉表现形式。AChartEngine是一个轻量级的库,专为Android平台设计,用于创建各种图表,包括线形图、饼图、柱状图等。在这个实例...
在Android应用开发中,数据可视化是一项重要的功能,能够帮助用户直观地理解复杂的数据信息。aChartEngine是一个强大的开源库,专门用于在Android平台上创建各种类型的图表,包括折线图、柱状图、饼图等。本文将深入...
AchartEngine是一款强大的图表库,特别适用于Android应用开发,它能帮助开发者轻松地创建各种类型的图表,如曲线图和柱形图。对于那些刚开始接触数据可视化或者需要在Android应用中展示数据的新手开发者来说,...
在Android应用开发中,`ACHartEngine`是一个强大的图表库,它允许开发者轻松地在应用程序中集成各种类型的图表,如折线图、柱状图、饼图等。本指南将详细解析如何使用`ACHartEngine`创建曲线图,并介绍其最新版的...
Android使用AChartEngine制作动态心电图效果
在Android应用开发中,视觉数据展示是至关重要的,特别是在数据密集型的应用中。`achartengine`是一个开源的图表库,允许开发者轻松地为Android应用添加各种图表,如折线图、柱状图、饼图等。这个项目,"基于...
在Android开发中,数据可视化是不可或缺的一部分,尤其是在创建各种类型的图表时,如曲线图、折线图、双曲线图、柱形图和饼图。这些图表可以帮助用户直观地理解复杂的数据信息。本资源提供了一个基于AChartEngine库...
本篇文章将详细探讨如何在Android应用中实现折线图,主要涉及两个库:AChartEngine和iChartJS。 首先,我们来看AChartEngine。AChartEngine是一个开源的Android图表库,它提供了丰富的图表类型,包括折线图、柱状图...
在这个"使用AChartengine画折线图Demo"中,我们将深入探讨如何利用AChartEngine库在Android应用中绘制折线图,以展示动态数据或统计信息。 首先,我们需要在项目中集成AChartEngine库。这通常通过添加依赖或下载库...
在Android应用开发中,数据可视化是一项重要的功能,它能让用户直观地理解复杂的数据。Achartengine是一个开源的图表库,适用于Android平台,可以方便地创建各种类型的图表,如折线图、柱状图、饼图等。本篇将详细...
Android中使用AChartEngine 来绘图的demo,比google code上的demo简单易懂。相关文章请看: http://blog.csdn.net/suiyuansanren/article/details/19819437
在Android应用开发中,视觉元素的呈现对于数据的展示和用户交互至关重要,特别是各种图表,如曲线图、柱状图和饼形图。AChartEngine是一个强大的开源库,专为Android设计,它允许开发者轻松地在应用程序中创建这些...
<Android开发代码库>achartengine实现柱状图、圆饼图、线图等 http://write.blog.csdn.net/postlist <Android开发代码库>achartengine实现柱状图、圆饼图、线图等 http://write.blog.csdn.net/postlist <Android...
标题中的“安卓图表报表相关-里面有曲线图折线图双曲线图柱形图饼图在achartengine的基础上更改了一些颜色.zip”表明这是一个关于Android应用程序开发的资源包,专注于图表和报表的展示。其中包含了多种类型的图表,...
在Android开发中,绘制曲线图是一项常见的任务,特别是在制作数据可视化应用、游戏或者任何需要图形表示的场景。这个"Android应用源码之安卓画曲线图代码.zip"压缩包很可能是包含了一个示例项目,用于展示如何在...
这里提到的"AChartEngine"是一个开源的Android图表库,它为开发者提供了创建各种图表的能力,包括曲线图、折线图、双曲线图、柱形图和饼图。这些图表类型在数据展示和分析中都有广泛的应用。 1. **曲线图**:曲线图...
在Android应用开发中,数据可视化是一个重要的环节,可以帮助用户更直观地理解复杂的数据。AChartEngine就是这样一款强大的图表库,它专为Android平台设计,允许开发者轻松创建各种类型的统计图表,如柱状图、曲线图...
android比较不错的 achartengine 股票曲线图
在这个特定的例子中,我们关注的是如何使用Achartengine来绘制平滑曲线和温度柱状图。 首先,我们要理解平滑曲线的生成。在Achartengine中,平滑曲线通常是通过样条插值或高斯滤波等方法实现的。样条插值是一种数学...