web-dev-qa-db-fra.com

comment changer la couleur de ProgressBar?

je veux changer HorizontalProgressBar couleur

j'ai essayé ça 

Comment changer la couleur d'un ProgressBar indéfini?

sa marche pas encore progresse en couleur bleu

c'est mon code

<ProgressBar
                 Android:id="@+id/mini_progress"
                 Android:layout_marginLeft="10dip"
                 Android:layout_marginRight="10dip"
                 style="?android:attr/progressBarStyleHorizontal"
                 Android:layout_width="match_parent"
                 Android:layout_height="20dip"
                 Android:layout_gravity="center_horizontal"
                 Android:indeterminate="false"
                 Android:indeterminateBehavior="repeat"
                 Android:indeterminateOnly="true"
                 Android:visibility="gone"/>

comment puis-je changer la couleur en rose?

22
Jack K Fouani

Essayez ce code - 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item Android:id="@Android:id/secondaryProgress">
        <clip>
            <shape>
                <corners Android:radius="5dip" />

                <solid Android:color="#f58233" />
            </shape>
        </clip>

        <color Android:color="#f58233" />
    </item>
    <item Android:id="@Android:id/progress">
        <clip>
            <shape>
                <corners Android:radius="5dip" />

                <solid Android:color="#f58233" />
            </shape>
        </clip>

        <color Android:color="#f58233" />
    </item>

</layer-list>

Barre de progression - 

<ProgressBar
            Android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            Android:layout_width="200dp"
            Android:layout_height="3dip"
            Android:progressDrawable="@drawable/progress_bar" />

Changer les codes de couleur en fonction de vos besoins

32
Vishal Pawale

créez un nouveau dessin avec quelque chose de similaire au suivant (dans ce cas, pinkprogress.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>
      <corners Android:radius="5dip" />
      <gradient Android:startColor="#F5A9F2"
                Android:centerColor="#F5A9F2"
                Android:centerY="0.75"
                Android:endColor="#F5A9F2"
                Android:angle="270" />
    </shape>
  </item>
  <item Android:id="@Android:id/secondaryProgress">
    <clip>
      <shape>
        <corners Android:radius="5dip" />
        <gradient Android:startColor="#80ffd300"
                  Android:centerColor="#80ffb600"
                  Android:centerY="0.75"
                  Android:endColor="#a0ffcb00"
                  Android:angle="270" />
      </shape>
    </clip>
  </item>
  <item Android:id="@Android:id/progress">
    <clip>
      <shape>
        <corners Android:radius="5dip" />
        <gradient Android:startColor="#33FF33"
                  Android:endColor="#008000"
                  Android:angle="270" />
      </shape>
    </clip>
  </item>
</layer-list>

et mis à progressbar dans le fichier xml:

 Android:progressDrawable="@drawable/pinkprogress"
20
Piyush

Je l'ai fait pour obtenir la couleur requise: 

    Android:indeterminate="true"
    Android:indeterminateTintMode="src_atop"
    Android:indeterminateTint="@color/myColor"

Fonctionne parfaitement pour moi. (API 21 ou supérieure)

14
arqam

Pour moi cela a bien fonctionné.

 enter image description here

<ProgressBar
            Android:id="@+id/verify_progress"
            style="@Android:style/Widget.ProgressBar.Horizontal"
            Android:layout_width="match_parent"
            Android:layout_height="5dp"
            Android:layout_below="@id/verify_phone"
            Android:layout_marginLeft="10dp"
            Android:layout_marginRight="10dp"
            Android:layout_marginTop="10dp"
            Android:indeterminate="false"
            Android:progressDrawable="@drawable/progress_bar" </ProgressBar>

drawable/progress_bar -

  <?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>
                <corners Android:radius="5dip" />
                <gradient
                    Android:startColor="@color/Gray"
                    Android:centerColor="@color/Gray"
                    Android:endColor="@color/Gray"
                    />
            </shape>
        </item>


        <item
            Android:id="@Android:id/progress"
            >
            <clip>
                <shape>
                    <corners
                        Android:radius="5dip" />
                    <gradient
                        Android:startColor="@color/PrimaryColor"
                        Android:endColor="@color/PrimaryColor" />
                </shape>
            </clip>
        </item>

    </layer-list>
11
Vikram Bhati

Depuis API 21, c'est un one-liner:

<ProgressBar
            ...
            Android:progressTint="@color/colorAccent"/>
2
Javatar

Ajouter un moteur de rendu:

public class CustomProgressBarRenderer :ProgressBarRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
    {
        base.OnElementChanged(e);

        Control.ProgressDrawable.SetColorFilter(Color.FromRgb(182, 231, 233).ToAndroid(), Android.Graphics.PorterDuff.Mode.SrcIn);
        //Control.ProgressTintListColor.FromRgb(182, 231, 233).ToAndroid();
        Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(Color.FromRgb(182, 231, 233).ToAndroid());


    }
}
1
kishang

cela fonctionne sur les appareils pré-Lollipop.

progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)
0
vikas kumar