黑马程序员技术交流社区

标题: Android图表 [打印本页]

作者: 考拉是只猫    时间: 2014-12-2 16:36
标题: Android图表
总体发现Android对报表的支持还是非常好的。主要利用Android提供的的AChartEngine来实现,

搜索到Android上各个报表控件的支持情况:

- Java4Less (http://java4less.com/charts/chart.php?info=android)
- aChartEngine (http://code.google.com/p/achartengine/)
- aiCharts (http://www.artfulbits.com/Android/aiCharts.aspx)

主要有以上几种。各个报表的优缺点:
java4Less统计的图的形状好看,但是如果屏幕分辨率很小的时候,不能进行缩放。
aChartEngine这个东西api简单,支持的东西也太少,但是可以进行缩放。
aiCharts 这个东东做的比较好,可是要收费。

而我的需求中一定要能够缩放,所以最后选择了AChartEngine

我这里所需要的是TimeChart和LineChart,使用后的总结是,API极简单,而且图标性能表现不错,可定制性也还不错。

(1)LineChart

XYMultipleSeriesRenderer内一些常用的API:
double getXAxisMax();//获取X轴上的标度值最大值
setXAxisMin(double min);//设置X轴上标度最小值
Int getMarginsColor();//获取空白处颜色
isZoomXEnabled();//获取在X轴上是否可以缩放
setGridColor(int color);//设置网格颜色
setMarginsColor(int color);//设置空白处颜色
setPointSize(float size);//设置点大小
render.setDisplayChartValues(true) ;//显示折线上点的数值
XYSeriesRenderer.setLineWidth(float lineWidth);//设置 线的粗细
renderer.setPanEnabled(false, false);//禁止报表的拖动
renderer.setMargins(new int[]{40,50,35,50});//上,左,下,右 控制图的边距
renderer.setLegendHeight(115);//控制图例的高度


(2)TimeChart

TimeChart继承与LineChart,所以在大部分报表的控制接口上是一致的,这个例子里面实现了动态刷新,效果还是不错的。

  1. <font color="rgb(51, 51, 51)"><font face="Verdana, Arial, Helvetica, sans-serif">/*
  2.     * 参数依次为:图形的标题,X轴标题,Y轴标题,轴背景颜色,轴坐标颜色
  3.     * */
  4.    public void setRandererBasicProperty(String title,String xTitle,String yTitle,int axeColor,int labelColor){   
  5.        renderer.setChartTitle(title);
  6.        renderer.setXTitle(xTitle);
  7.        renderer.setYTitle(yTitle);
  8.        renderer.setYAxisMax(10);
  9.        renderer.setYAxisMin(-4);
  10.       
  11.        //设置各种颜色
  12.        renderer.setAxesColor(axeColor);
  13.        renderer.setLabelsColor(labelColor);
  14.        renderer.setMarginsColor(Color.WHITE);//空白颜色(底色)
  15.        renderer.setGridColor(Color.GRAY);//网格颜色
  16.       
  17.        //设置文字的属性
  18.        renderer.setXLabels(5);
  19.        renderer.setYLabels(5);
  20.        renderer.setXLabelsAlign(Align.RIGHT);
  21.        renderer.setYLabelsAlign(Align.LEFT);
  22.        renderer.setAxisTitleTextSize(16);
  23.        renderer.setChartTitleTextSize(20);
  24.        renderer.setLabelsTextSize(15);
  25.        renderer.setLegendTextSize(15);
  26.       
  27.        //设置图形位置,缩放,形态
  28.        renderer.setPointSize(2);
  29.        renderer.setMargins(new int[] { 35, 35, 0, 20 });//留白 上,左,下,右
  30.        renderer.setLegendHeight(41);//设置底部文字的高度
  31.        renderer.setShowGrid(true);
  32.        renderer.setZoomEnabled(true, false);
  33.    }</font></font>
复制代码






作者: 执着的桶牛    时间: 2014-12-3 23:46
来顶一下
作者: 海阔天空88    时间: 2014-12-4 00:05
挺好的,顶下
作者: IcedCoffee    时间: 2015-1-11 11:21
额 看起来 很牛的样子 可惜 我看不懂
作者: 许庭洲    时间: 2015-1-14 14:29
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2