如何更改进度条的进度颜色?

时间:2016-06-30 10:09:51

标签: android

嘿伙计们,我为我的应用程序创建了这个进度条,但我不能得到那种看起来像红色或蓝色的黄色橙色。

<ProgressBar
        android:id="@+id/progress_bar"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:layout_width="250sp"
        android:layout_height="wrap_content"
        android:progress="2"
        android:layout_marginTop="82dp"
        android:max="3"
        android:indeterminate="false"
        android:layout_below="@+id/imageView"
        android:layout_centerHorizontal="true" />

上面是我的进度条xml代码。

任何帮助人? :)

非常感谢! :)

8 个答案:

答案 0 :(得分:31)

如果Android版本是5.0及以上,你只需要设置

android:indeterminateTint="@color/BLACK"
android:indeterminateTintMode="src_in"

对于较低版本,我使用此

mProgressBar.getIndeterminateDrawable().setColorFilter(getResources()
.getColor(R.color.primary_color),PorterDuff.Mode.SRC_IN);

答案 1 :(得分:10)

在您的可绘制文件夹中创建一个名为custom_progress_bar.xml的新xml文件并将其粘贴到那里:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<!-- Define the background properties like color etc -->

<item android:id="@android:id/background">
    <clip>
        <shape>
            <solid android:color="#000000" />
        </shape>
    </clip>
</item>
<!-- Define the progress properties like start color, end color etc -->
<item android:id="@android:id/progress">
    <clip>
        <shape>
            <solid android:color="#FFFFFF" />
        </shape>
    </clip>
</item>

<ProgressBar>添加此属性:

android:progressDrawable="@drawable/custom_progress_bar"

根据您的喜好更改2种颜色。我把#FFFFFF#000000分为白色和黑色。

答案 2 :(得分:4)

转到 styles.xml 并更改基本应用主题中的 colorAccent 值,例如
<item name="colorAccent">{COLOR}</item>
我正在使用minSdkVersion 15,它对我有用。

答案 3 :(得分:3)

如果您想更改ProgressBar颜色,不是可绘制,您可以将此样式用作ProgressBar的主题

<style name="ProgressBar" parent="Widget.AppCompat.ProgressBar">
    <item name="colorAccent">@color/white_primary</item>
</style>

答案 4 :(得分:1)

尝试此操作并添加自定义颜色

Progressbar mBar= (ProgressBar) findViewById(R.id.spinner);
mBar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#80DAEB"),
            android.graphics.PorterDuff.Mode.MULTIPLY);

希望这有帮助

答案 5 :(得分:1)

如果 android:indeterminateTint 不起作用,试试这个:

<ProgressBar
    android:id="@+id/progress_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:progressTint="@color/Red" <--------------------------
    android:progressBackgroundTint="@color/Blue" <---------------
    android:layout_width="250sp"
    android:layout_height="wrap_content"
    android:progress="2"
    android:layout_marginTop="82dp"
    android:max="3"
    android:indeterminate="false"
    android:layout_below="@+id/imageView"
    android:layout_centerHorizontal="true" />

答案 6 :(得分:0)

供以后参考:

对于API 21+,我们可以直接在XML中使用

android:indeterminateTint="@android:color/white"

答案 7 :(得分:0)

像这样在style.xml中设置主题

 <style name="ProgressBar" parent="Widget.AppCompat.ProgressBar">
    <item name="colorAccent">@color/dark_blue</item>
</style>

然后像这样在progressBar中使用这种样式作为“主题”,

<ProgressBar
    android:id="@+id/progressBar"
    android:theme="@style/ProgressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="440dp"
    app:layout_constraintEnd_toEndOf="@+id/splashTitle"
    app:layout_constraintHorizontal_bias="0.493"
    app:layout_constraintStart_toStartOf="@+id/splashTitle"
    app:layout_constraintTop_toBottomOf="@+id/splashTitle" />

快乐编码