Android ProgressBar 如何设置颜色

在 Android 开发中,ProgressBar 是一种常用的控件,用于显示一个进度条。ProgressBar 有多种样式,如水平进度条、圆形进度条等。在某些情况下,我们可能需要自定义 ProgressBar 的颜色,以适应不同的界面风格或需求。本文将介绍如何设置 Android ProgressBar 的颜色。

设置 ProgressBar 的颜色

Android ProgressBar 的颜色可以通过修改 ProgressBar 的样式来实现。下面我们将分别介绍如何设置水平进度条和圆形进度条的颜色。

设置水平进度条的颜色

  1. 创建一个 XML 文件,用于定义水平进度条的样式。在 res/drawable 目录下创建名为 progress_bar_horizontal.xml 的文件,并添加以下内容:
<layer-list xmlns:android="
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#CCCCCC" />
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dp" />
                <solid android:color="#FF0000" />
            </shape>
        </clip>
    </item>
</layer-list>

在上述代码中,我们使用 layer-list 元素来定义一个层列表。第一个 item 元素定义了进度条的背景,通过设置 solid 的颜色属性来设置背景颜色。第二个 item 元素定义了实际的进度条,通过设置 clip 元素限制进度条只显示 progress 的部分,通过设置 solid 的颜色属性来设置进度条颜色。

  1. 在布局文件中使用自定义的进度条样式。在你需要显示进度条的布局文件中添加以下代码:
<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="100"
    android:progress="50"
    android:progressDrawable="@drawable/progress_bar_horizontal" />

在上述代码中,我们给 ProgressBar 设置了样式 ?android:attr/progressBarStyleHorizontal,并指定了之前定义的进度条样式文件 @drawable/progress_bar_horizontal

  1. 运行应用程序,即可看到自定义颜色的水平进度条。

设置圆形进度条的颜色

  1. 创建一个 XML 文件,用于定义圆形进度条的样式。在 res/drawable 目录下创建名为 progress_bar_circle.xml 的文件,并添加以下内容:
<rotate xmlns:android="
    android:fromDegrees="270"
    android:toDegrees="270">

    <shape
        android:innerRadiusRatio="2.5"
        android:shape="ring"
        android:thicknessRatio="10.0">

        <solid android:color="#CCCCCC" />

        <size
            android:width="48dp"
            android:height="48dp" />
    </shape>
</rotate>

在上述代码中,我们使用 rotate 元素将进度条的起始角度和终止角度都设置为 270 度,以使进度条从顶部开始。然后,我们使用 shape 元素定义了进度条的形状为圆环,通过设置 solid 的颜色属性来设置进度条的颜色。最后,我们通过设置 size 元素来定义进度条的宽度和高度。

  1. 在布局文件中使用自定义的进度条样式。在你需要显示进度条的布局文件中添加以下代码:
<ProgressBar
    android:id="@+id/progressBar"
    style="?android:attr/progressBarStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminate="true"
    android:indeterminateDrawable="@drawable/progress_bar_circle" />

在上述代码中,我们给 ProgressBar 设置了样式 ?android:attr/progressBarStyle,并指定了之前定义的进度条样式文件 @drawable/progress_bar_circle

  1. 运行应用程序,即可看到自定义颜色的圆形进度