美文网首页
框架整理系列二十(图表展示)

框架整理系列二十(图表展示)

作者: I_Gisvity | 来源:发表于2017-06-06 14:31 被阅读0次

    大神:https://github.com/whataa/SuitLines

    SuitLines

    suitline是一个小巧且高效的线性图表组件。

    image
    image image image

    功能特性

    suitline基于实用性目的而打造,相较于其它图表库,suitlines在多线段、性能体验以及视觉反馈等几个方面进行了支持和优化,使其更适合用于实际项目中。suitLines的所有特性如下:

    • 可以为line指定一或多种颜色;

    • 支持多条line;

    • 支持线段 / 曲线 / 虚线 相互切换;

    • 支持边缘拖动反馈效果;

    • 支持y轴自定义分隔区间、x轴自定义文本;

    • 支持点击反馈;

    • 美而不腻的动画;

    使用步骤

    注意:SuitLines需要项目的 API >= 14

    1.集成

    • 第一种:通过build.gradle方式集成

      compile 'tech.linjiang:suitlines:1.0.0'
      
    • 第二种:直接下载源文件到项目。(推荐

      由于所有的逻辑代码都在SuitLines.java中且拥有丰富的注释,所以可以方便地按照实际业务需求来调整或改造。

    2.在xml布局中调用:

    <tech.linjiang.suitlines.SuitLines
        xmlns:line="http://schemas.android.com/apk/res-auto"
        android:id="@+id/suitlines"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        line:xySize="8"
        line:xyColor="@color/colorAccent"
        line:lineType="curve"
        line:Style="solid"
        line:needEdgeEffect="true"
        line:colorEdgeEffect="@color/colorPrimaryDark"
        line:needClickHint="true"
        line:colorHint="@color/colorPrimary"
        line:maxOfVisible="7"
        line:countOfY="6"/>
    

    所有可静态配置的属性如上,以下是其对应的动态设置方法及其它API:

    静态属性 对应API 说明
    xySize setXySize xy轴文字大小
    xyColor setXyColor xy轴文字的颜色,包含轴线
    lineType setLineType 指定line类型:CURVE / SEGMENT(曲线/线段)
    Style setLineStyle 指定line的风格:DASHED / SOLID(虚线/实线)
    needEdgeEffect disableEdgeEffect 关闭边缘效果,默认开启
    colorEdgeEffect setEdgeEffectColor 指定边缘效果的颜色,默认为Color.GRAY
    needClickHint disableClickHint 关闭点击提示信息,默认开启
    colorHint setHintColor 设置提示辅助线、文字颜色
    maxOfVisible / 一组数据在可见区域中的最大可见点数,至少>=2
    countOfY / y轴刻度数,至少>=1
    / setLineSize 设置line在非填充形态时的大小
    / setLineForm 设置line的形态:是否填充,默认为false

    3.填充数据

    对于一条line,可以直接调用feed或feedWithAnim方法:

    List<Unit> lines = new ArrayList<>();
    for (int i = 0; i < 14; i++) {
        lines.add(new Unit(new SecureRandom().nextInt(48), i + ""));
    }
    suitLines.feedWithAnim(lines);
    

    如果是多条数据,则需要通过Builder来实现:

    SuitLines.LineBuilder builder = new SuitLines.LineBuilder();
    for (int j = 0; j < count; j++) {
        List<Unit> lines = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            lines.add(new Unit(new SecureRandom().nextInt(128), "" + i));
        }
        builder.add(lines, new int[]{...});
    }
    builder.build(suitLines, true);
    

    相关文章

      网友评论

          本文标题:框架整理系列二十(图表展示)

          本文链接:https://www.haomeiwen.com/subject/ztggfxtx.html