prince
prince

Reputation: 1149

Set remaining progress bar color in android

I'm setting the color of the progress bar using the following style code

<item android:id="@android:id/progress">
    <clip>
      <shape>
        <corners android:radius="0dip" />
          <gradient
            android:angle="0"
            android:endColor="#36A19C"
            android:startColor="#36A19C" />
      </shape>
    </clip>
  </item>

My progressbar looks like below image

enter image description here
How can I set the color of the grey part shown in my progress bar???

Upvotes: 3

Views: 1442

Answers (3)

Aman Reddy
Aman Reddy

Reputation: 31

Add this line of code to your progress bar XML.

android:progressBackgroundTint="#ReplaceThisWithYourColor"

It works for me.

Upvotes: 0

Salmaan
Salmaan

Reputation: 3624

Try looking at some tutorials here and here.

Create a file custom_progressbar.xml in your drawable

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

<!-- Define the background properties like color etc -->
    <item android:id="@android:id/background">
        <shape>
            <gradient
                    android:startColor="backgroundColor"
                    android:endColor="backgroundColor"
                    android:angle="0"
            />
        </shape>
    </item>

 <!-- Define the progress properties like start color, end color etc -->
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <gradient
                    android:startColor="progressColor"
                    android:endColor="progressColor"
                    android:angle="0"
                />
            </shape>
        </clip>
    </item>

</layer-list>

Set this to your progressBar in code

 // Get the Drawable custom_progressbar                     
 Drawable customDrawable= res.getDrawable(R.drawable.custom_progressbar);
 // set the drawable as progress drawavle
 progressBar.setProgressDrawable(customDrawable);

Upvotes: 4

Kiril Aleksandrov
Kiril Aleksandrov

Reputation: 2591

You can try this way:

<?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="@color/seekbar_background" />

            <stroke
                android:width="@dimen/seekbar_background_border"
                android:color="@android:color/transparent" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="@color/seekbar_progress" />
            </shape>
        </clip>
    </item>

</layer-list>

The progress bar uses a layer list that holds several layers. You need background and progress. Hope this helps you :)

Upvotes: 2

Related Questions