Android开发 绘制曲线图 AchartEngine使用
来源:互联网 发布:什么是linux发行版 编辑:程序博客网 时间:2024/05/15 23:47
1.首先在布局文件中加入LinearLayout布局,如下:
<LinearLayout android:id="@+id/chart" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/white" android:layout_weight="1" />
2.写一个类,封装了绘图工具
package com.jinbi.app.utils;import java.util.Random;import org.achartengine.chart.PointStyle;import org.achartengine.model.CategorySeries;import org.achartengine.model.XYMultipleSeriesDataset;import org.achartengine.model.XYSeries;import org.achartengine.renderer.XYMultipleSeriesRenderer;import org.achartengine.renderer.XYSeriesRenderer;import android.graphics.Color;import android.graphics.Paint.Align;public class DrawableUtil { /**获取数据 * @return 返回XYMultipleSeriesDataset * @yData 设置y轴的数据 */public static XYMultipleSeriesDataset getBarDemoDataset(double[] yData){ XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); final int nr = yData.length; CategorySeries series = new CategorySeries("Demo series " + 1); for (int k = 0; k < nr; k++){ series.add(yData[k]); } dataset.addSeries(series.toXYSeries()); return dataset;} public static XYMultipleSeriesRenderer getBarDemoRenderer(String[] date,double yStart,double yEnd) { XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); XYSeriesRenderer r = new XYSeriesRenderer(); r.setColor(Color. BLUE ); renderer.addSeriesRenderer(r); r.setPointStyle(PointStyle.CIRCLE);//点的类型是圆形 r.setFillPoints(true);//设置点是否实心 setChartSettings(renderer, date, yStart, yEnd); return renderer; } public static void setChartSettings(XYMultipleSeriesRenderer renderer,String[] dates,double yStart,double yEnd) { int i = 1; renderer.setMargins(new int[] { 50, 50, 50, 0 }); //设置图表的外边框(上/左/下/右) renderer.setApplyBackgroundColor(true); //设置是否显示背景色 renderer.setBackgroundColor(Color.argb(00, 265, 265, 265));//设置背景颜色 renderer.setAxisTitleTextSize(16); //设置轴标题文字的大小 renderer.setChartTitleTextSize(10); //设置整个图表标题文字大小 renderer.setLabelsTextSize(22); //设置刻度显示文字的大小(XY轴都会被设置) renderer.setLegendTextSize(15); //图例文字大小 renderer.setZoomButtonsVisible(false); //是否显示放大缩小按钮 renderer.setPointSize(5); //设置点的大小(图上显示的点的大小和图例中点的大小都会被设置) renderer.setXAxisMin(0); //设置X轴的最小值 renderer.setXAxisMax(8); //设置X轴的最大值 renderer.setYAxisMin(yStart); //设置Y轴的最小值 renderer.setYAxisMax(yEnd); //设置Y轴的最大值 renderer.setAxesColor(Color.GREEN); //设置X轴的颜色 renderer.setLabelsColor(Color.GREEN); //设置Y轴的颜色 renderer.setXLabels(6); //设置x轴显示6个点,根据setChartSettings的最大值和最小值自动计算点的间隔 renderer.setYLabels(8); //设置y轴显示6个点,根据setChartSettings的最大值和最小值自动计算点的间隔 renderer.setShowGridY(false); //是否显示Y网格 renderer.setShowGridX(true); //是否显示X方向的网格 renderer.setGridColor(Color.GRAY); //设置网格的颜色 renderer.setXLabelsAlign(Align.CENTER); //刻度线与刻度标注之间的相对位置关系 renderer.setYLabelsAlign(Align.RIGHT); //刻度线与刻度标注之间的相对位置关系 renderer.setZoomButtonsVisible(false); //是否显示放大缩小按钮 renderer.setPanEnabled(false, true); //设置是否允许XY轴方向移动 renderer.setShowLegend(false); //设置是否显示图例 renderer.setMarginsColor(Color.WHITE); // 设置外框颜色穿透背景色 renderer.setXLabelsAngle(-25); // 设置X轴标签倾斜角度(clockwise degree) renderer.setXLabels(0); // 设置X轴不显示数字(改用我们手动添加的文字标签) for (String date:dates){ renderer.addTextLabel(i, date); //修改X轴显示坐标 i++; } }}
3.在Activity中加入代码,显示出控件
XYMultipleSeriesRenderer renderer = DrawableUtil.getBarDemoRenderer(date,yStart,yEnd);layout = (LinearLayout) findViewById(R.id.chart); //绑定控件 layout.removeAllViews(); //这个方法是用来辅助实现刷新功能mChartView = ChartFactory.getTimeChartView(this, DrawableUtil.getBarDemoDataset(yData), renderer, "MM/dd"); layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
这样就可以在LinearLayout控件中将图标显示出来了。当然还有些细节需要自己处理!
4.补充:
1、增加需求:显示的点上加文字
renderer.setDisplayChartValues(true); //显示点的坐标值
XYSeriesRenderer.setChartValuesTextSize(25); //设置点的文字大小
- Android开发 绘制曲线图 AchartEngine使用
- Android使用AchartEngine绘制曲线图
- 使用achartengine绘制曲线图
- [Android]使用achartengine开发曲线图相关的Android应用程序
- 使用achartengine开发曲线图相关的Android应用程序
- 使用AChartEngine绘制双Y轴的柱形--曲线图
- 使用AChartEngine绘制双Y轴的柱形--曲线图
- Android 给AChartEngine绘制的曲线图加渐变色(修改AChartEngine源码)
- Android 开发 使用achartengine-0.7.0.jar 绘制柱状图
- Android开发,AchartEngine使用
- 使用AChartEngine画动态曲线图
- 使用AChartEngine画动态曲线图
- android使用achartengine实现各种图形绘制
- android Achartengine绘制柱状图
- android 曲线图的绘制
- Android利用Achartengine实现实时曲线图
- Android利用Achartengine实现实时曲线图
- 【Android 应用开发】Android 图表绘制 achartengine 示例解析
- Busybox下tftp命令使用详解
- EXt用到时间轴曲线图例子:
- [Java][ibatis]ibatis批量处理+多表关联查询
- VBS获取服务的信息
- MFC消息映射BEGIN_MESSAGE_MAP详解
- Android开发 绘制曲线图 AchartEngine使用
- C++中的空类,默认产生哪些类成员函数
- nyoj-540-奇怪的排序
- mfc视频教程
- wordpress 更换主题
- 程序员必知(三):一分钟知道URI编码(encodeURI)
- Hdu2036-求多边形面积
- xcode4.3.2 下制作ios的framework 库
- POJ 3710 Christmas Game