第三方开源库:步骤显示控件:StepView + timelineview + TimelineView

StepView

github:https://github.com/zhangxuyang321/StepView
有横向和纵向2种方向。

FlowViewHorizontal
FlowViewVertical

这里写图片描述 这里写图片描述
具体的用法不写了,下面是项目的README.md

Gradle

compile 'com.xyz.step:step:1.0.4'

Maven

<dependency>
  <groupId>com.xyz.step</groupId>
  <artifactId>step</artifactId>
  <version>1.0.4</version>
  <type>pom</type>
</dependency>

横向

属性介绍

属性介绍类型默认是否必须
h_bg_radius背景 ○ 的半径dimension5
h_pro_radius已完成 ○ 的半径dimension2
h_bg_width背景线的宽度dimension3
h_bg_color背景的颜色colorcdcbcc
h_pro_width已完成线的宽度dimension2
h_pro_color已完成的颜色color029dd5
h_text_padding步骤描述文字(title)与○的距离dimension10
h_time_padding时间与○的距离dimension15
h_max_step总步骤(○)的个数int5
h_pro_step已完成步骤int1
h_textsize字体大小dimension10

layout

<com.xyz.step.FlowViewHorizontal
        android:id="@+id/hflowview4"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:paddingLeft="30dp"
        app:h_bg_radius="6dp"
        app:h_bg_width='4dp'
        app:h_pro_radius='4dp'
        app:h_pro_width="2dp"
        app:h_text_padding='10dp'
        app:h_textsize='10dp'
        app:h_time_padding='17dp' />

代码

    /**
     * 进度设置
     * @param progress 已完成到哪部
     * @param maxStep  总步骤
     * @param titles   步骤名称
     * @param times    完成时间
     */
    public void setProgress(int progress, int maxStep, String[] titles, String[] times);

    /**
     * 颜色设置 键值是步骤标题所包含的字符
     * @param map 标题-颜色
     */
    public void setKeyColor(Map<String, String> map);

竖向

属性介绍

属性介绍类型默认是否必须
v_bg_radius背景 ○ 的半径dimension5
v_pro_radius已完成 ○ 的半径dimension2
v_bg_width背景线的宽度dimension3
v_bg_color背景的颜色colorcdcbcc
v_pro_width已完成线的宽度dimension2
v_pro_color已完成的颜色color029dd5
v_interval○ 与 ○之间的间距dimension80
v_bgPositionX指示线距view左边缘的距离dimension100
v_textPaddingLeft步骤描述文字与指示线的距离dimension10
v_timePaddingRight时间与指示线的距离dimension15
v_max_step总步骤(○)的个数int5
v_pro_step已完成步骤int1
v_textsize字体大小dimension10
v_textMoveTop指示器右侧文字位置上下移动的距离dimension5
v_timeMoveTop指示器左侧文字位置上下移动的距离dimension4

layout

<com.xyz.step.FlowViewVertical
        android:id="@+id/vflow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:paddingRight="10dp"
        android:paddingTop="10dp"
        app:v_bgPositionX="40dp"
        app:v_bg_color="#029dd5"
        app:v_bg_radius="8dp"
        app:v_bg_width="4dp"
        app:v_interval="80dp"
        app:v_max_step="10"
        app:v_pro_color="#cdcbcc"
        app:v_pro_radius="8dp"
        app:v_pro_step="9"
        app:v_pro_width="4dp"
        app:v_textMoveTop="7dp"
        app:v_textsize="14dp" />

代码

    /**
     * 进度设置
     * @param progress 当前进行到哪一步
     * @param maxStep  总的步骤
     * @param titles   文字描述(指示线右侧)
     * @param times    时间描述(指示线左侧)
     */
    public void setProgress(int progress, int maxStep, String[] titles, String[] times);


    /**
     * 颜色设置 键值是步骤标题所包含的字符
     * @param map 标题-颜色
     */
    public void setKeyColor(Map<String, String> map);

使用注意

全部

  • title[] 和 time[] 传null 的时候则不显示指示器不显示文字与时间
  • 最小步骤总和(max_step)>=2且>=已完成步骤(pro_step)
  • 字体大小单位是dp
  • 具体步骤颜色的设置是根据步骤描述(title[])中是否包含所传入map的key值来决定是否更改的,注意是”包含”
  • 只有已完成步骤才可以单独设置颜色,未完成步骤统一使用的是bg_color所得到的颜色

横向

  • 横向指示器自动计算步骤之间的间隔
  • 横向指示器自动居中显示,当设定paddingLeft后无需再设定paddingRight
  • 横向指示器不可以横向滑动

竖向

  • 竖向指示器需单独设置步骤之间的间隔(v_interval)
  • 竖向指示器可与ScrollView结合使用,从而达到滑动
  • 竖向指示器并没有使用item复用,如果数据量较大建议使用listview
  • 竖向指示器绘制文字有所不同,也因此导致文字与步骤节点(○)不在一个水平线上,可通过v_textMoveTop与v_timeMoveTop适配

timelineview

github:https://github.com/WrBug/timelineview
不可以同时设置时间和步骤。

效果图

这里写图片描述

gradle

compile 'com.wrbug:timelineview:1.0.0'

xml

基本:

<com.wrbug.timeline.TimeLineView
    android:id="@+id/tlv1"
    android:layout_width="wrap_content"
    android:layout_height="50dp"/>

详细:

<com.wrbug.opensources.TimeLineView
    android:id="@+id/timeLineView3"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_margin="20dp"
    app:preCircleColor="#0044ff"
    app:preLineColor="#333333"
    app:startedCircleColor="#880000"
    app:startedLineColor="#ff0000"
    app:textSize="12sp"/>

JAVA

数据可以是集合或数组

tlv1 = (TimeLineView) findViewById(R.id.tlv1);
tlv1.setPointStrings(list, 2);

tlv2 = (TimeLineView) findViewById(R.id.tlv2);
tlv2.setPointStrings(array,3);
TimeLineView mView=(TimeLineView) findViewById(R.id.timeLineView3);
mView.builder()
    .pointStrings(txts, 1)
    .startedCircleColor(Color.BLUE)
    .underwayCircleColor(Color.BLUE)
    .preCircleColor(Color.GRAY)
    .startedLineColor(Color.BLUE)
    .preLineColor(Color.GRAY)
    .startedStringColor(Color.BLUE)
    .underwayStringColor(Color.BLUE)
    .preStringColor(Color.GRAY)
    .load();   //开始绘制

XML属性 和方法

属性类型说明
textSizefloat文本大小
preLineColorint未开始状态线条颜色
startedLineColorint已进行状态线条颜色
preCircleColorint未开始状态圆颜色
underwayCircleColorint进行中状态圆颜色
startedCircleColorint已进行状态圆颜色
preStringColorint未开始状态文本颜色
underwayStringColorint进行中状态文本颜色
startedStringColorint已进行状态文本颜色
radiusint圆半径
lineWidthfloat线条宽度
方法类型说明
pointStrings()List/String[]状态文本

TimelineView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值