AchartEngine制作图表–>折线图,柱状图:

下载achartengine-1.1.0.jar

http://download.csdn.net/detail/csdnadcode/7771691
http://download.csdn.net/detail/u011247387/8013717

Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种图表类型。

1、认识AchartEngine:

AchartEngine提供了两种绘制图表的方法:

ChartFactory.getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,)

直接新建一个Activity全屏显示生成的图表。

ChartFactory.getXXXChartView(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,)

生成一个GraphicalView,然后在需要的布局文件中Add进去即可。

ChartFactory有多种api,通过这些api调用来决定自己需要的图表:

1、XYMultipleSeriesRenderer对象:包含一系列XYSeriesRender,用来设置图表的整体风格,整体样式
2、XYMultipleSeriesDataset对象:包含一系列XYSeries,用于数据的存放,提供绘制的点集合的数据
3、XYSeriesRenderer对象:用来设置一条线条的风格,颜色啊,粗细之类的
4、XYSeries对象:用于存储一条线的数据信息

2、使用AchartEngine

首先,将AchartEngine的第三讲jar包导入到自己的项目当中去,项目当中我用的是第二种方法来绘制图表。布局文件很简单,就是一个简单的线性布局,以后作为添加GraphicalView的布局。

  

然后,就是在代码里面进行设置:

// 折线图

private void initviews() {    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();    // 构造数据    Random random = new Random();    XYSeries series = new XYSeries("折线一");    for (int i = 1; i < 10; i++) {        series.add(i, random.nextInt(100));    }    // 需要绘制的点放在dataset当中    dataset.addSeries(series);    // 对点的绘制进行描述    XYSeriesRenderer xyRenderer = new XYSeriesRenderer();    // 设置颜色    xyRenderer.setColor(Color.BLUE);    // 设置点的风格    // xyRenderer.setPointStyle(PointStyle.X);    // xyRenderer.setPointStyle(PointStyle.TRIANGLE);    // xyRenderer.setPointStyle(PointStyle.SQUARE);    // xyRenderer.setPointStyle(PointStyle.POINT);    // xyRenderer.setPointStyle(PointStyle.DIAMOND);    xyRenderer.setPointStyle(PointStyle.CIRCLE);    // 设置空心实心    xyRenderer.setFillPoints(true);    // 设置XY轴名称    renderer.setXTitle("时间");    renderer.setYTitle("温度");    // 设置标题    renderer.setChartTitle("折线图");    // 设置Y轴最大值    renderer.setYAxisMax(100);    renderer.setXAxisMax(10);    renderer.setXAxisMin(0);    renderer.setYAxisMin(0);    // 设置XY轴颜色    renderer.setAxesColor(Color.BLACK);    renderer.setLabelsColor(Color.BLACK);    // 设置XY轴显示    renderer.setYLabels(10);    renderer.setXLabels(10);    // 设置 是否显示图例    renderer.setShowLegend(true);    // 设置不显示放大缩小图标    renderer.setZoomEnabled(false);    // 设置是否支持图表缩放    renderer.setPanEnabled(false, false);    // 设置是否可点击    renderer.setClickEnabled(false);    // 是否显示网格    renderer.setShowGrid(true);    // 设置空白区的颜色    renderer.setMarginsColor(Color.WHITE);    renderer.setBackgroundColor(getResources().getColor(R.color.white));    // 设置坐标轴文字颜色    renderer.setXLabelsColor(Color.BLACK);    renderer.setYLabelsColor(0, Color.BLACK);    // 刻度线与刻度标注之间的相对位置关系    renderer.setXLabelsAlign(Align.CENTER);    // 刻度线与刻度标注之间的相对位置关系    renderer.setYLabelsAlign(Align.RIGHT);    renderer.setZoomButtonsVisible(false);// 是否显示放大缩小按钮    renderer.setMargins(new int[] { 50, 50, 20, 20 });// 设置图表的外边框(上/左/下/右)    renderer.setAxisTitleTextSize(20);// 设置轴标题文字的大小    renderer.setChartTitleTextSize(30);// 设置整个图表标题文字的大小    renderer.setLabelsTextSize(15);// 设置轴刻度文字的大小    renderer.setLegendTextSize(15);// 设置图例文字大小    renderer.setPointSize(5);// 设置点的大小(图上显示的点的大小和图例中点的大小都会被设置)//      renderer.setBarSpacing(0.5f);//柱子间宽度      // 将要绘制的点添加到坐标绘制中    renderer.addSeriesRenderer(xyRenderer);    // 折线图    LinearLayout linearlayout = (LinearLayout) findViewById(R.id.chart_ll);//      GraphicalView view = ChartFactory.getBarChartView(this, dataset, renderer,Type.STACKED);    GraphicalView view = ChartFactory.getLineChartView(this, dataset, renderer);    linearlayout.addView(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);}

在MainActivity调用:

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initviews();}

activity_main布局:

        

4、换柱状图,替换最后设置的样式:

GraphicalView view = ChartFactory.getBarChartView(this, dataset, renderer,Type.STACKED);

添加柱体之间的距离,其他需要的直接修改属性设置:

renderer.setBarSpacing(0.5f);//柱子间宽度  

参考资料:

http://blog.csdn.net/tyk0910/article/details/50037701

安卓图表引擎AChartEngine(一) - 简介
http://blog.csdn.net/lk_blog/article/details/7645509

安卓图表引擎AChartEngine(二) - 示例源码概述和分析
http://blog.csdn.net/lk_blog/article/details/7642751

安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
http://blog.csdn.net/lk_blog/article/details/7645668

安卓图表引擎AChartEngine(四) - 源码示例嵌入Acitivity中的折线图
http://blog.csdn.net/lk_blog/article/details/7645665

安卓图表引擎AChartEngine(五) - Render和Dataset参数介绍
http://blog.csdn.net/lk_blog/article/details/7645661

安卓图表引擎AChartEngine(六) - 框架源码结构图
http://blog.csdn.net/lk_blog/article/details/7645671

更多相关文章

  1. android获取手机屏幕大小
  2. android TextView 垂直自动滚动字幕实现
  3. Android图片大小压缩
  4. Android中如何判断sd卡容量是否小于某值
  5. Android计算文件夹大小、文件大小单位转换、删除文件夹及其内容
  6. Android(安卓)EditText 中hint文字大小以及与输入文字颜色保存一
  7. Android(安卓)自定义TextView实现文本内容自动调整字体大小以适
  8. Android(安卓)JSON数据与实体类之间的相互转化-------GSON实现
  9. android奇怪问题收集

随机推荐

  1. springcloud+eureka整合阿里seata-saga模
  2. MySQL死锁系列-线上死锁问题排查思路
  3. Java泛型Type
  4. MySQL 的 join 功能弱爆了?
  5. konicaminolta柯尼卡美能达打印机统驱动
  6. SpringBoot+Maven热部署(IDEA)
  7. 图解Android事件传递之View篇
  8. 编程小技巧之 Linux 文本处理命令(二)
  9. jQuery入门学习一
  10. ajax 的 get, post 请求;实战:选项卡和一键