• Android中图表AChartEngine学习使用与例子


    很多时候项目中我们需要对一些统计数据进行绘制表格,更多直观查看报表分析结果。基本有以下几种方法:

    1:可以进行android  api进行draw这样的话,效率比较低

    2:使用开源绘表引擎,这样效率比较高.下面就介绍一种。

    AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。

    该项目地址位于: http://code.google.com/p/achartengine/

    你可以选择合适的版本下载,每个版本都有一个jar包、实例源代码和java doc提供下载。当前最新版本为1.1.0。

      

    上面是两幅用该引擎绘制出来的图标例子.


    如上图所示:可以有demo源代码,文档和jar包,根据所需进行下载:

    下面稍微演示一下生成一个树状图:

    1:新建项目,把jar引入进去

    2:在Androidmanifest.xml文件中进行配置文件

     <activity android:name="org.achartengine.GraphicalActivity" />

    因为接下来要考这个Activity进行显示图表

    3:下面创建一个AChart接口 

    1. public interface AChartAbstract {  
    2.       
    3.     /** 
    4.      * 获取一个当前类型图标的Intent实例 
    5.      */  
    6.     public Intent getIntent(Context context);  
    7. }  

    4:创建BarChart.java进行准备数据源和引擎设置

      

    1. public class BarChart implements AChartAbstract {  
    2.   
    3.     public Intent getIntent(Context context) {  
    4.         Intent mIntent=ChartFactory.getBarChartIntent(context, getDataSet(), getRenderer(), Type.STACKED, "当月开票金额树状图");  
    5.         return mIntent;  
    6.     }  
    7.   
    8.     /** 
    9.      * 构造数据 
    10.      * @return 
    11.      */  
    12.     public XYMultipleSeriesDataset getDataSet() {  
    13.         // 构造数据  
    14.         XYMultipleSeriesDataset barDataset = new XYMultipleSeriesDataset();  
    15.         CategorySeries barSeries = new CategorySeries("2014年3月");  
    16.         barSeries.add(865.5969);  
    17.         barSeries.add(2492.6479);  
    18.         barSeries.add(891.0137);  
    19.         barSeries.add(0.0);  
    20.         barSeries.add(691.0568);  
    21.         barDataset.addSeries(barSeries.toXYSeries());  
    22.         return barDataset;  
    23.     }  
    24.   
    25.     /** 
    26.      * 构造渲染器 
    27.      * @return 
    28.      */  
    29.     public XYMultipleSeriesRenderer getRenderer() {  
    30.         XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();  
    31. //      renderer.setChartTitle("当月开票");  
    32. //      // 设置标题的字体大小  
    33. //      renderer.setChartTitleTextSize(16);  
    34.         renderer.setXTitle("事业部");  
    35.         renderer.setYTitle("单位(万元)");  
    36.         renderer.setAxesColor(Color.WHITE);  
    37.         renderer.setLabelsColor(Color.WHITE);  
    38.         // 设置X轴的最小数字和最大数字  
    39.         renderer.setXAxisMin(0.5);  
    40.         renderer.setXAxisMax(5.5);  
    41.         // 设置Y轴的最小数字和最大数字  
    42.         renderer.setYAxisMin(0);  
    43.         renderer.setYAxisMax(3000);  
    44.         renderer.addXTextLabel(1"电网");  
    45.         renderer.addXTextLabel(2"通信");  
    46.         renderer.addXTextLabel(3"宽带");  
    47.         renderer.addXTextLabel(4"专网");  
    48.         renderer.addXTextLabel(5"轨交");  
    49.         renderer.setZoomButtonsVisible(true);  
    50.         // 设置渲染器允许放大缩小  
    51.         renderer.setZoomEnabled(true);  
    52.         // 消除锯齿  
    53.         renderer.setAntialiasing(true);  
    54.         // 设置背景颜色  
    55.         renderer.setApplyBackgroundColor(true);  
    56.         renderer.setBackgroundColor(Color.GRAY);  
    57.         // 设置每条柱子的颜色  
    58.         SimpleSeriesRenderer sr = new SimpleSeriesRenderer();  
    59.         sr.setColor(Color.YELLOW);  
    60.         renderer.addSeriesRenderer(sr);  
    61.         // 设置每个柱子上是否显示数值  
    62.         renderer.getSeriesRendererAt(0).setDisplayChartValues(true);  
    63.         // X轴的近似坐标数  (这样不显示横坐标)  
    64.         renderer.setXLabels(0);  
    65.         // Y轴的近似坐标数  
    66.         renderer.setYLabels(6);  
    67.         // 刻度线与X轴坐标文字左侧对齐  
    68.         renderer.setXLabelsAlign(Align.LEFT);  
    69.         // Y轴与Y轴坐标文字左对齐  
    70.         renderer.setYLabelsAlign(Align.LEFT);  
    71.         // 允许左右拖动,但不允许上下拖动.  
    72.         renderer.setPanEnabled(truefalse);  
    73.         // 柱子间宽度  
    74.         renderer.setBarSpacing(0.5f);  
    75.         // 设置X,Y轴单位的字体大小  
    76.         renderer.setAxisTitleTextSize(20);  
    77.         return renderer;  
    78.     }  


    最后主函数直接

      

    1. Intent lineIntent = new BarChart().getIntent(this);  
    2.             startActivity(lineIntent);  

    直接启动Androidmanifest.xml已经配置的activity就可以显示树状图了。


    上面的注释已经写的比较清楚了。基本是可以明白的。更多图表的例子可以在http://code.google.com/p/achartengine/中下载demo

  • 相关阅读:
    配置JAVA的环境变量
    Navicat Premium v12.0.23.0 安装,使用激活码激活
    mysql 5.7.33安装教程
    查看mysql服务
    postman测试post请求参数是List entity后端用@RequestBody接受lIst entity方式
    最简单的MySQL安装教程(数据库免安装版,免安装版,亲测好用) mysql-5.7.33-winx64.zip
    mysql数据库安装5.7.33
    java删除附件图片
    java生成条形码
    最高的牛
  • 原文地址:https://www.cnblogs.com/android100/p/Android-AChartEngine.html
Copyright © 2020-2023  润新知