Android 如何更改不确定进度条的颜色?

Android 如何更改不确定进度条的颜色?,android,layout,progress-bar,Android,Layout,Progress Bar,我有一个具有以下样式的progressbar:style=“?android:attr/android:progressBarStyleSmall” 不幸的是,该栏几乎是白色的,在我的例子中,它显示在白色背景上。 因此,progressbar几乎不可见 如何更改进度条的颜色?深灰色就好了。我很难改变它的颜色。为了解决这个问题,我得到了android的src代码,并创建了自己的ProgressBar类 这不是最好的答案,但对我来说很有效。之所以选择这种颜色,是因为您选择了这种样式。这是一种固定样式

我有一个具有以下样式的progressbar:
style=“?android:attr/android:progressBarStyleSmall”

不幸的是,该栏几乎是白色的,在我的例子中,它显示在白色背景上。 因此,progressbar几乎不可见


如何更改进度条的颜色?深灰色就好了。

我很难改变它的颜色。为了解决这个问题,我得到了android的src代码,并创建了自己的ProgressBar类


这不是最好的答案,但对我来说很有效。

之所以选择这种颜色,是因为您选择了这种样式。这是一种固定样式,使用系统主题生成UI元素

请查看来自的源代码。此progressBarStyleSmall属性使用定义的样式


@android:drawable/progress\u small\u white
16倾角
16倾角
16倾角
16倾角

只需按照android源代码中的示例创建自定义样式。您需要更换android:UndeterminatedRavable to your want.

并且答案已经打开,因此:


您只需通过
android:indenderedravable
属性更改progressbar中显示的整个可绘制图形

要获得黑色进度条,请使用以下一种反向样式:

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

只是一个注释,供使用

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> 

或者任何反向进度条,您必须将最低android sdk要求设置为4级(android 1.6)

此代码将默认的holo Inderinate可绘制颜色更改为您自己的颜色。
定义您的颜色代码并将
R.color.light\u light\u purple
替换为
R.color.your\u color\u code

您能分享这个课程吗?这对我们的一款含氰姜饼型号不起作用。太糟糕了:(这真的应该是公认的答案。我最近才发现颜色过滤方法基本上可以将任何东西更改为你想要的任何颜色,这非常棒。非常感谢……!请接受我的答案,以便对其他人更有利:)我只需要在棒棒糖之前的SDK版本中使用这个片段,所以,我用一个静态方法包装了这个片段:
LegacyStyleUtil#adjustLegacyStyle(Context,ProgressBar)
。然后,我从我的活动/片段中调用这个方法<代码>公共静态void adjustLegacyStyle(上下文上下文,ProgressBar ProgressBar){if(BuildConfigUtil.isLegacySDK()&&ProgressBar!=null){ProgressBar.getIndeterminatedRavable().setColorFilter(Context.getResources().getColor(R.color.green_progress),PorterDuff.Mode.SRC_IN)}}在较新的Android上不起作用,因为不确定的进度条是简单的圆圈:它停止转动。
<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> 
public static void setColorOfProgressBar(ProgressBar mProgressBar, int mColor){
    mProgressBar.getIndeterminateDrawable().setColorFilter(mColor, android.graphics.PorterDuff.Mode.MULTIPLY);
}
progressBar.getIndeterminateDrawable().setColorFilter(
            getResources().getColor(R.color.light_light_purple),
            android.graphics.PorterDuff.Mode.SRC_IN);