【Android】实现Material Design风格的progressbar

文章介绍了在Android中如何使用系统提供的ProgressBar和第三方库如MaterialProgressBar、CircularProgressView来实现MaterialDesign风格的线性、不确定进度和圆形进度条,并提供了相关示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全面解读

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值