zoukankan      html  css  js  c++  java
  • hellocharts-android开源图表库(效果非常好)

     

    泡在网上的日子 发表于 2014-11-07 12:28 第 33156 次阅读 chart

    编辑推荐:稀土掘金,这是一个高质量的技术干货分享社区,web前端、Android、iOS、设计资源和产品,满足你的学习欲望。

    之前我们介绍了一个非常优秀开源图表库 MPAndroidChart  ,但是我们今天介绍的将是一个更为优秀的图表库,比MPAndroidChart性能更好,功能更完善,UI风格更美观,坐标轴更精细。

    他就是github上出现的新项目HelloCharts

    HelloCharts支持以下chart类型

    • Line chart(cubic lines, filled lines, scattered points)

    • Column chart(grouped, stacked, negative values)

    • Pie chart

    • Bubble chart

    • Combo chart(columns/lines)

    • Preview charts(for column chart and line chart)

    此外还具有以下特点

    • 支持缩放、滑动以及平移。Zoom(pinch to zoom, double tap zoom), scroll and fling

    • 支持自定义坐标轴(比如坐标轴位置:上下左右内部),支持自动生成坐标轴。Custom and auto-generated axes(top, bottom, left, right, inside)

    • 动画(Animations)

    • 支持预览,即在chart下面会有一个坐标密度更细的附属chart,当选中附属chart的某一区域,附属chart上面的chart会显示选中区域的更详细情况。

    下面是一些效果截图

    我能用妙趣横生来形容吗、、

    编译以及使用方法

    每一种chart都可以在xml中定义:

    1
    2
    3
    4
    <lecho.lib.hellocharts.view.LineChartView
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    当然也可以在java代码中直接创建:

    1
    2
    LineChartView chart = new LineChartView(context);
    layout.addView(chart);

    可以通过一些公共方法设置其行为属性,下面是一些例子:

    1
    2
    3
    Chart.setInteractive(boolean isInteractive);
    Chart.setZoomType(ZoomType zoomType);
    Chart.setContainerScrollEnabled(boolean isEnabled, ContainerScrollType type);

    或者是用数据模型定义一些显示的方式:

    1
    2
    3
    ChartData.setAxisXBottom(Axis axisX);
    ColumnChartData.setStacked(boolean isStacked);
    Line.setStrokeWidth(int strokeWidthDp);

    每一种chart都有自己的数据模型以及设置数据的方法,下面以LineChart为例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    List<PointValue> values = new ArrayList<PointValue>();
    values.add(new PointValue(0, 2));
    values.add(new PointValue(1, 4));
    values.add(new PointValue(2, 3));
    values.add(new PointValue(3, 4));
    //In most cased you can call data model methods in builder-pattern-like manner.
    Line line = new Line(values).setColor(Color.Blue).setCubic(true);
    List<Line> lines = new ArrayList<Line>();
    lines.add(line);
    LineChartData data = new LineChartData();
    data.setLines(lines);
    LineChartView chart = new LineChartView(context);
    chart.setLineChartData(data);

    代码下载地址

    http://jcodecraeer.com/a/opensource/2014/1107/1931.html

  • 相关阅读:
    Spring@Profile注解
    day 32 子进程的开启 及其用法
    day 31 udp 协议SOCK_DGRAM
    day 30 客户端获取cmd 命令的步骤
    day 29 socket 理论
    day 29 socket 初级版
    有关 组合 继承
    day 27 多态 接口 类方法 静态方法 hashlib 摘要算法模块
    新式类和经典类的区别
    day 28 hasattr getattr serattr delattr 和带__内置__ 类的内置方法
  • 原文地址:https://www.cnblogs.com/pengmn/p/5237334.html
Copyright © 2011-2022 走看看