在 Android 中,Material Design 风格的 ProgressBar 可以使用系统提供的 ProgressBar 和第三方库来实现。
系统提供的 ProgressBar:
- 普通线性 ProgressBar
可以使用 Android 系统自带的 ProgressBar ,并设置样式 style 为 “?android:attr/progressBarStyleHorizontal”。
<ProgressBarstyle="?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" />
- 不确定进度条
如果你需要一个不确定的进度条,那么可以设置 indeterminate 属性为 true,这将从左到右循环显示进度条。
<ProgressBarstyle="?android:attr/progressBarStyleHorizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:indeterminate="true" />
- 圆形 ProgressBar
使用 Android 自带的止步方法是改变 ProgressBar 样式为“@android:drawable/xxx”,xxx可以根据自己的需求设置,常用的有 spinner、small、large 等。如下所示:
<ProgressBarandroid:id="@+id/progressBar"style="@android:style/Widget.ProgressBar.Large.Inverse"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="16dp"/>
第三方库:
- MaterialProgressBar
MaterialProgressBar 是一个提供了多种 Material Design 风格进度条的第三方库。在 Gradle 中添加 MaterialProgressBar 的依赖:
dependencies {implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
}
示例代码:
<me.zhanghai.android.materialprogressbar.MaterialProgressBarandroid:layout_width="wrap_content"android:layout_height="wrap_content" />
这将生成一个圆形的条纹状进度条。
- CircularProgressView
CircularProgressView 是另一个第三方库,提供圆形进度条。在 Gradle 中添加 CircularProgressView 的依赖:
dependencies {implementation 'com.github.castorflex.circularprogressbar:circularprogressbar:2.4.1'
}
示例代码:
<com.github.castorflex.circularprogressbar.CircularProgressBarandroid: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。