Android(安卓)绘制折线和柱状图
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
更多相关文章
- android获取手机屏幕大小
- android TextView 垂直自动滚动字幕实现
- Android图片大小压缩
- Android中如何判断sd卡容量是否小于某值
- Android计算文件夹大小、文件大小单位转换、删除文件夹及其内容
- Android(安卓)EditText 中hint文字大小以及与输入文字颜色保存一
- Android(安卓)自定义TextView实现文本内容自动调整字体大小以适
- Android(安卓)JSON数据与实体类之间的相互转化-------GSON实现
- android奇怪问题收集