CircleProgressBar继承ProgressBar, 是包含实心和线条两种风格的圆环进度条. 此外, 进度值可以随意定制.如果你对酷炫的进度条比较感兴趣, 或许你更喜欢 LoadingDrawable.

用法

Gradle
 dependencies {
    compile 'com.dinuscxj:circleprogressbar:1.0.0'
 }
用在xml中:
<com.dinuscxj.progressbar.CircleProgressBar
    android:id="@+id/line_progress"
    android:layout_marginTop="@dimen/default_margin"
    android:layout_width="50dp"
    android:layout_height="50dp" />

属性

有下面这些属性你可以设置:

The style:

  • solid
  • line
  • solid_line

The progress text:

  • text color
  • text size
  • visibility
  • format

The progress circle:

  • width
  • start_color
  • end_color
  • background color

The progress_shader

  • linear
  • radial
  • sweep

The progress_stroke_cap

  • butt
  • round
  • square

The line style:

  • width
  • count

例如 :

<com.dinuscxj.progressbar.CircleProgressBar
    android:layout_width="50dp"
    android:layout_height="50dp"

    app:style="line"

    app:progress_text_color="@color/holo_purple"
    app:progress_text_size="@dimen/progress_text_size"
    app:draw_progress_text="true"
    app:progress_text_format_pattern="@string/progress_text_format_pattern"

    app:progress_stroke_width="1dp"
    app:progress_start_color="@color/holo_purple"
    app:progress_end_color="@color/holo_green_light"
    app:progress_background_color="@color/holo_darker_gray"

    app:progress_shader="sweep"

    app:progress_stroke_cap="round"

    app:line_width="4dp"
    app:line_count="30"/>

优点

  1. 继承ProgressBar, 不必关心当前进度状态的保存, ProgressBar 已经在onSaveInstanceState()和 onRestoreInstanceState(Parcelable state)中帮我们写好了。
  2. 定制性很强,可以设置两种风格的进度条,设置进度条的颜色和进度文本的颜色和大小, 由于代码中对于进度文本的格化化是使用的String.format(), 所以进度文本可以根据需要随意定制
  3. 代码优雅,代码注释很全面,格式整齐,可以直接在xml中设置相关的属性。