【Android】实现Material Design风格的progressbar

在 Android 中,Material Design 风格的 ProgressBar 可以使用系统提供的 ProgressBar 和第三方库来实现。

系统提供的 ProgressBar:

  1. 普通线性 ProgressBar

可以使用 Android 系统自带的 ProgressBar ,并设置样式 style 为 “?android:attr/progressBarStyleHorizontal”。

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="false"
    android:max="100"
    android:progress="40"
    android:secondaryProgress="70" />
  1. 不确定进度条

如果你需要一个不确定的进度条,那么可以设置 indeterminate 属性为 true,这将从左到右循环显示进度条。

<ProgressBar
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:indeterminate="true" />
  1. 圆形 ProgressBar

使用 Android 自带的止步方法是改变 ProgressBar 样式为“@android:drawable/xxx”,xxx可以根据自己的需求设置,常用的有 spinner、small、large 等。如下所示:

<ProgressBar
    android:id="@+id/progressBar"
    style="@android:style/Widget.ProgressBar.Large.Inverse"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"/>

第三方库:

  1. MaterialProgressBar

MaterialProgressBar 是一个提供了多种 Material Design 风格进度条的第三方库。在 Gradle 中添加 MaterialProgressBar 的依赖:

dependencies {
    implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
}

示例代码:

<me.zhanghai.android.materialprogressbar.MaterialProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

这将生成一个圆形的条纹状进度条。

  1. CircularProgressView

CircularProgressView 是另一个第三方库,提供圆形进度条。在 Gradle 中添加 CircularProgressView 的依赖:

dependencies {
    implementation 'com.github.castorflex.circularprogressbar:circularprogressbar:2.4.1'
}

示例代码:

<com.github.castorflex.circularprogressbar.CircularProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:cpbStyle="normal"
    app:cpbColors="@array/material_colors"
    app:cpbStrokeWidth="3dp"
    app:cpbIndeterminate="true" />

此代码将创建一个圆形而不是条形 ProgressBar。

通过使用这些实现,你可以创建出各种不同样式、颜色和大小的 Material Design 风格的 ProgressBar。

你可能感兴趣的:(Android,android,Material,Design,progressbar)