【问题标题】:How to change color of a progress bar in android如何在android中更改进度条的颜色
【发布时间】:2015-12-22 07:54:12
【问题描述】:

我只想在特定活动中更改 android 中进度条的颜色,而不是在整个应用程序中。

我正在使用下面的进度条:

<ProgressBar
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar"
        android:layout_centerInParent="true"/>

mProgressBar = (ProgressBar) findViewById(R.id.loading);
        mProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(mContext, R.color.white),
                PorterDuff.Mode.SRC_IN);

使用上面的代码改变这个进度条的颜色。上面的代码改变了整个应用程序所有进度条的颜色。

我只想在此特定活动中更改此进度条的颜色。

我该怎么做,请帮助我。 非常感谢您。

【问题讨论】:

  • 您是否对应用程序中的所有进度条使用相同的"@+id/progressBar"
  • @Prithniraj Nicyone,检查答案

标签: android android-progressbar


【解决方案1】:

尝试设置一个colorFilter,像这样:

progressBar.getProgressDrawable().setColorFilter(Color.GREEN, Mode.SRC_IN);

【讨论】:

    【解决方案2】:

    使用此方法比在 Java 中以编程方式更好。

     <ProgressBar
                     style="?android:attr/progressBarStyleHorizontal"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:id="@+id/progressBar1"
                     android:layout_centerInParent="true"
                     android:progressDrawable="@drawable/progress_layer01"        
                     android:indeterminate="false" />
    

    progress_layer01.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:id="@android:id/background">
            <shape>
                <solid android:color="#f1f1f1"/>
            </shape>
        </item>
    
    
    
        <item android:id="@android:id/progress">
            <clip>
                <shape>
    
    <solid android:color="#FF0000"/>
    
                </shape>
    
            </clip>
        </item>
    </layer-list>
    

    在您的 JAVA 代码中:

    progressBar1.setProgress(45);
    

    【讨论】:

    • 我已经尝试过上述解决方案,它在低于 Lollipop 的版本中运行良好,但在 Lolliopop 中出现绿色进度条。我希望在棒棒糖和较低版本的活动中都有白色进度条。我该怎么做。
    • 不仅棒棒糖,它也适用于棉花糖。试试吧,我已经测试过了。他们是您的问题的任何其他问题。谢谢
    • 我尝试了与上面编写的代码相同的代码,但在棒棒糖中获得了绿色进度条。我使用 style="?android:attr/progressBarStyle" 作为进度条的样式。请检查一次。
    • 是的,我知道,但你应该使用任何样式,其他尝试修改它。谢谢
    猜你喜欢
    • 2011-01-02
    • 2023-03-29
    • 2016-11-02
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多