How to change android indeterminate ProgressBar color?
progressBar.getIndeterminateDrawable().setColorFilter( getResources().getColor(Your_Color), android.graphics.PorterDuff.Mode.SRC_IN);
and replace Your_Color with the desired color like: R.color.your_color_code
To get a ProgressBar in the default theme that is to be used on white/light back ground, use one of the inverse styles:
<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/><ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/><ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>
This will usually give you a black on transparent ProgressBar, but some OS installs use custom assets. If you're looking for a specific color, you'll have to roll your own drawables by following the instructions provided by CommonsWare.
I see other answers are quite old, in order to change the indeterminate ProgressBar color you have just to set android:indeterminateTint
and android:indeterminateTintMode
attributes in your ProgressBar
item directly in XML:
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateTint="@color/colorPrimary" android:indeterminateTintMode="src_in" android:indeterminate="true" />
android:indeterminateTint
- Tint to apply to the indeterminate progress indicator.
Must be a color value, in the form of
"#rgb"
,"#argb"
,"#rrggbb"
,"#aarrggbb"
, or a reference to a resource@color/colorPrimary
.
android:indeterminateTintMode
- Blending mode used to apply the progress indicator tint.
Must be one of the following constant values:
add
,multiply
,screen
,src_atop
,src_in
orsrc_over
Getter and Setter methods for these attributes are:
getIndeterminateTintList()
getIndeterminateTintMode()
setIndeterminateTintList(ColorStateList tint)
setIndeterminateTintMode(PorterDuff.Mode tintMode)
All of them were added in API level 21