`
baobeituping
  • 浏览: 1064552 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

[Android]使用achartengine开发曲线图相关的Android应用程序

 
阅读更多

使用achartengine开发曲线图相关的Android应用程序使用achartengine开发曲线图相关的Android应用程序

 

应用程序的开发过程中,经常会遇到和曲线图打交道的情况,相比自己写代码绘制,无疑的,使用一些美观高效的开源库是一个更好的选择。目前开源的曲线图绘制工作有很多,本文以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); 
    } 
}

分享到:
评论

相关推荐

    使用AChartEngine画动态曲线图

    在Android开发中,有时我们需要展示数据的变化趋势,这时动态曲线图是一种非常有效的视觉表现形式。AChartEngine是一个轻量级的库,专为Android平台设计,用于创建各种图表,包括线形图、饼图、柱状图等。在这个实例...

    Android报表库aChartEngine 横轴为时间曲线图表

    在Android应用开发中,数据可视化是一项重要的功能,能够帮助用户直观地理解复杂的数据信息。aChartEngine是一个强大的开源库,专门用于在Android平台上创建各种类型的图表,包括折线图、柱状图、饼图等。本文将深入...

    android achartengine曲线图 最新版

    在Android应用开发中,`ACHartEngine`是一个强大的图表库,它允许开发者轻松地在应用程序中集成各种类型的图表,如折线图、柱状图、饼图等。本指南将详细解析如何使用`ACHartEngine`创建曲线图,并介绍其最新版的...

    AchartEngine 画曲线图,柱形图

    AchartEngine是一款强大的图表库,特别适用于Android应用开发,它能帮助开发者轻松地创建各种类型的图表,如曲线图和柱形图。对于那些刚开始接触数据可视化或者需要在Android应用中展示数据的新手开发者来说,...

    Android高级应用源码-里面有曲线图 折线图 双曲线图 柱形图 饼图,在achartengine 的基础上 更改了一些颜色

    在Android开发中,数据可视化是不可或缺的一部分,尤其是在创建各种类型的图表时,如曲线图、折线图、双曲线图、柱形图和饼图。这些图表可以帮助用户直观地理解复杂的数据信息。本资源提供了一个基于AChartEngine库...

    Android制作曲线、柱状图、饼形等图表—使用AChartEngine

    在Android应用开发中,视觉元素的呈现对于数据的展示和用户交互至关重要,特别是各种图表,如曲线图、柱状图和饼形图。AChartEngine是一个强大的开源库,专为Android设计,它允许开发者轻松地在应用程序中创建这些...

    Android柱状曲线等统计图AChartEngine

    在Android应用开发中,数据可视化是一个重要的环节,可以帮助用户更直观地理解复杂的数据。AChartEngine就是这样一款强大的图表库,它专为Android平台设计,允许开发者轻松创建各种类型的统计图表,如柱状图、曲线图...

    基于achartengine双Y轴动态图表Android源码

    在Android应用开发中,视觉数据展示是至关重要的,特别是在数据密集型的应用中。`achartengine`是一个开源的图表库,允许开发者轻松地为Android应用添加各种图表,如折线图、柱状图、饼图等。这个项目,"基于...

    android 股票曲线图

    android比较不错的 achartengine 股票曲线图

    Android自定义用能曲线图

    2. **绘图库**:Android SDK本身并不直接提供绘制曲线图的功能,但可以利用第三方库,如MPAndroidChart、AChartEngine等,或者自己实现绘图逻辑。如果选择自定义实现,你需要了解`Canvas`类和相关的绘图方法,如`...

    android条形图 饼图 曲线图 例子详细 可以直接用 包含achartengine的jar包

    在Android应用开发中,数据可视化是一项重要的功能,它可以帮助用户直观地理解复杂的数据。本教程主要涉及使用AChartEngine库创建条形图、饼图和曲线图的详细实例,非常适合开发者快速集成到自己的项目中。 首先,...

    Android学习之AChartEngine折线图

    在Android开发中,AChartEngine是一个非常实用的开源图表库,它可以帮助开发者轻松地在应用程序中展示各种类型的图表,如折线图、柱状图、饼图等。本篇文章将详细探讨如何使用AChartEngine创建折线图,并通过源码...

    安卓图表报表相关-里面有曲线图折线图双曲线图柱形图饼图在achartengine的基础上更改了一些颜色.zip

    标题中的“安卓图表报表相关-里面有曲线图折线图双曲线图柱形图饼图在achartengine的基础上更改了一些颜色.zip”表明这是一个关于Android应用程序开发的资源包,专注于图表和报表的展示。其中包含了多种类型的图表,...

    Android应用源码之安卓画曲线图代码.zip

    在Android开发中,绘制曲线图是一项常见的任务,特别是在制作数据可视化应用、游戏或者任何需要图形表示的场景。这个"Android应用源码之安卓画曲线图代码.zip"压缩包很可能是包含了一个示例项目,用于展示如何在...

    Android studio画曲线

    Achartengine是一个轻量级的图表库,适用于Android应用,它支持多种图表类型,包括线形图、饼图、条形图等。在Android手机传感器实时数据展示的场景中,线形图是最常见的选择,因为它能直观地显示数据随时间变化的...

    用Achartengine的平滑曲线和温度柱状图

    Achartengine是一个强大的开源Java库,它允许开发者轻松地在Android平台上创建各种图表,包括折线图、柱状图、饼图等。...掌握这些知识和技巧,对于开发涉及数据可视化的Android应用来说是十分重要的。

    有曲线图 折线图 双曲线图 柱形图 饼图,在achartengine 的基础上 更改了一些颜色

    这里提到的"AChartEngine"是一个开源的Android图表库,它为开发者提供了创建各种图表的能力,包括曲线图、折线图、双曲线图、柱形图和饼图。这些图表类型在数据展示和分析中都有广泛的应用。 1. **曲线图**:曲线图...

    android 实时曲线图

    利用achartengine实现的实时曲线图,其中有两种实现方式(含四种表现方式),使用时请先将android-support-v7-appcompat导入,然后导入RealTimeChart,导入完成后,修改Library引用,方法如下:右击RealTimeChart...

    Android画曲线图

    在Android开发中,有时我们需要展示数据,而曲线图或折线图是一种直观且常见的方法,尤其在统计、分析和监控等场景中。本教程将详细讲解如何在Android应用中实现曲线图的绘制,主要利用XYMultipleSeriesRenderer库来...

Global site tag (gtag.js) - Google Analytics