如何在Android中获得虚线水平进度条?

时间:2017-02-01 07:21:51

标签: android android-progressbar android-shapedrawable

我需要设计一个虚线进度条,如附件所示。

enter image description here

这是我到目前为止所做的,它显示了一个具有两种不同颜色的正常进度条,一个用于进度,另一个用于其他颜色。

<ProgressBar
    android:id="@+id/progress_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:progressDrawable="@drawable/bg_progress_bar_green"
    />

bg_progress_bar_green就在这里

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape>
        <solid android:color="#E0E1EA" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <solid android:color="#66BA6B" />
        </shape>
    </clip>
</item>

这就是我更新进度条的方式:

 progressBar.setProgress(numOfHours);

如何显示条形虚线?

1 个答案:

答案 0 :(得分:1)

您可以将此库用于工作Step Progress Bar。我在链接发生变化时提供代码。

<强>摇篮

dependencies {
   ...
   compile 'com.marcok.stepprogressbar:stepprogressbar:1.0.1'
}

<强>用法

 <com.marcok.stepprogressbar.StepProgressBar
    android:layout_centerVertical="true"
    android:layout_height="0dp"
    android:layout_width="wrap_content"
    android:id="@+id/stepProgressBar"
    app:cumulativeDots="false"
    app:activeDotIndex="0"
    app:activeDotColor="@color/material_deep_teal_500"
    app:inactiveDotColor="@color/material_blue_grey_800"
    app:activeDotIcon="@drawable/active_dot.png"
    app:inactiveDotIcon="@drawable/inactive_dot.png"
    app:numberDots="6"
    app:dotSize="20dp"
    app:spacing="20dp"/>
  • 如果提供了点图标,则它们会覆盖点颜色
  • 布局高度无关紧要,由dotSize
  • 决定

Java代码

  • 要移至下一个点或上一个点:

    StepProgressBar mStepProgressBar =(StepProgressBar)findViewById(R.id.stepProgressBar); mStepProgressBar.next(); mStepProgressBar.previous();

    • 要将点设置为累积(所有点&lt; =指定的索引将显示为有效),请致电setCumulativeDots(true)

    • 调用setCurrentProgressDot(-1)会阻止任何点显示为活动状态。任何较低的值都会抛出IndexOutOfBoundsExeption.

    • 其他方法:

    setCurrentProgressDot(); setNumDots(); setActiveColor(); setInactiveColor(); setActiveDrawable(); setInactiveDrawable();

用于矩形进展的草稿

使用这两个标签..

inactive_dot.png inactive_dot.png

active_dot.png active_dot.png