How to change color in circular progress bar?

I am using circular progress bar on Android. I wish to change the color of this. I am using

"?android:attr/progressBarStyleLargeInverse" 

style. So how to change the color of progress bar.

  • Reduce speed of smooth scroll in scroll view
  • ViewPager with indicator without Android's support library
  • How do you add user defined properties/values in to the Android manifest file?
  • Android ActionBar MenuItem LowerCase
  • What length is iOS and Androids device token
  • Android: Adding a simple Fragment
  • How to custom the style?? Furthermore, what is the definition of the style??

    Thanks in advance.

    Related posts:

    FragmentManager IllegalStateException: No host
    Android SMS receiver not working
    How to understand that shows LeakCanary?
    cannot find zip-align when publishing app
    queryBroadcastReceivers does not find receivers registered with registerReceiver
    Check WiFi and GPS isConnected or Not in Android?
  • Update android time zone data
  • Make Espresso wait for WebView to finish loading
  • Storage Access Framework in test app
  • Android Emulator restarts when sending mock location
  • failed to find target with hash string 'android-22'
  • Clicking the back button twice to exit an activity
  • 12 Solutions collect form web for “How to change color in circular progress bar?”

    Make one xml folder in res directory and put the progress.xml file in it .

    progress.xml

        <?xml version="1.0" encoding="utf-8"?>
    <rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
        android:toDegrees="360">
        <shape android:shape="ring" android:innerRadiusRatio="3"
            android:thicknessRatio="8" android:useLevel="false">
    
            <size android:width="76dip" android:height="76dip" />
            <gradient android:type="sweep" android:useLevel="false"
                android:startColor="#447a29" 
                android:endColor="#447a29"
                android:angle="0"
                 />
        </shape>
    </rotate> 
    

    Set startColor and endColor as per your choice .

    Now set that progress.xml in ProgressBar‘s backgound .

    Like this

    <ProgressBar
      android:id="@+id/ProgressBar01" 
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background ="@xml/progress">
    

    1.First Create an xml file in drawable folder under resource

    named “progress.xml”

    <?xml version="1.0" encoding="utf-8"?>
    <rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="360" >
    
        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="8"
            android:useLevel="false" >
    
        <size
            android:height="76dip"
            android:width="76dip" />
    
        <gradient
            android:angle="0"
            android:endColor="color/pink"
            android:startColor="@android:color/transparent"
            android:type="sweep"
            android:useLevel="false" />
    
        </shape>
    
    </rotate>
    

    2.then make a progresss bar using the folloing snippet

    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/relativeLayout1"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:indeterminate="true"
        android:indeterminateDrawable="@drawable/progress" />
    

    You can change color programmatically by using this code :

    ProgressBar v = (ProgressBar) findViewById(R.id.progress);
    v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
                            android.graphics.PorterDuff.Mode.MULTIPLY);
    

    If you want to change ProgressDialog’s progressbar color, u can use this :

    mDilog.setOnShowListener(new OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                ProgressBar v = (ProgressBar)mDilog.findViewById(android.R.id.progress);
                v.getIndeterminateDrawable().setColorFilter(0xFFcc0000,
                        android.graphics.PorterDuff.Mode.MULTIPLY);
    
            }
        });
    

    For API 21 and Higher. Simply set the indeterminateTint property. Like:

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

    To support pre-API 21 devices:

    mProgressSpin.getIndeterminateDrawable()
                    .setColorFilter(ContextCompat.getColor(this, R.color.colorPrimary), PorterDuff.Mode.SRC_IN );
    

    To add to Dato’s answer, i find SRC_ATOP to be a preferable filter to multiply as it better supports the alpha channel.

    ProgressBar v = (ProgressBar) findViewById(R.id.progress);
    v.getIndeterminateDrawable().setColorFilter(0xFFcc0000, android.graphics.PorterDuff.Mode.SRC_ATOP);
    

    To customize circular ProgressBar we need to create a indeterminateDrawable to show custom progress bar

    <?xml version="1.0" encoding="utf-8"?>
    <rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="1">
    
            <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="8"
            android:useLevel="false">
            <size
                android:height="48dip"
                android:width="48dip" />
    
            <gradient
                android:centerColor="#f96047"
                android:centerY="0.50"
                android:endColor="#fb9c8d"
                android:startColor="#f72d0c"
                android:type="sweep"
                android:useLevel="false" />
        </shape>
    
    </rotate>
    

    We need to include drawable in progressbar just as below:

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        style="?android:attr/progressBarStyleLarge"
        android:visibility="visible"
        android:progressDrawable="@drawable/widget_progressbar"
        android:indeterminateDrawable="@drawable/widget_progressbar"
        android:layout_height="wrap_content" />
    

    styles.xml

    <style name="CircularProgress" parent="Theme.AppCompat.Light">
        <item name="colorAccent">@color/yellow</item>
    </style>
    
      <ProgressBar
            android:layout_width="@dimen/d_40"
            android:layout_height="@dimen/d_40"
            android:indeterminate="true"
            style="@style/Widget.AppCompat.ProgressBar"
            android:theme="@style/CircularProgress"/>
    

    android:indeterminateTint=”@color/progressbar”

    You can do this with a custom dialog pretty easily, reusing the xml from other answers:

    <?xml version="1.0" encoding="utf-8"?>
    

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >
    
        <size
            android:height="76dip"
            android:width="76dip" />
    
        <gradient
            android:angle="0"
            android:endColor="@color/oceanBlue"
            android:startColor="@android:color/transparent"
            android:type="sweep"
            android:useLevel="false" />
    
    </shape>
    

    Just do this:

    public static class ModifiedProgressDialog extends ProgressDialog {
        public ModifiedProgressDialog(Context context) {
            super(context);
        }
    
        @Override
        public void show() {
            super.show();
            setIndeterminateDrawable(getContext().getResources().getDrawable(R.drawable.blue_progress));
        }
    }
    

    for me theme wasn’t working with accentColor. But it did work with colorControlActivated

        <style name="Progressbar.White" parent="AppTheme">
            <item name="colorControlActivated">@color/white</item>
        </style>
    
      <ProgressBar
            android:layout_width="@dimen/d_40"
            android:layout_height="@dimen/d_40"
            android:indeterminate="true"
            android:theme="@style/Progressbar.White"/>
    

    Add to your activity theme, item colorControlActivated, for example:

        <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
                ...
                <item name="colorControlActivated">@color/rocket_black</item>
                ...
        </style>
    

    Apply this style to your Activity in the manifest:

    <activity
        android:name=".packege.YourActivity"
        android:theme="@style/AppTheme.NoActionBar"/>
    

    You can change your progressbar colour using the code below:

    progressBar.getProgressDrawable().setColorFilter(
        getResources().getColor(R.color.your_color), PorterDuff.Mode.SRC_IN);
    
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.