web-dev-qa-db-fra.com

Comment changer la couleur de la barre de progression dans Android? - (J'ai essayé dans un sens et cela ne fonctionne pas)

J'ai ajouté une barre de progression à mon activité en utilisant le code suivant:

<LinearLayout
    Android:id="@+id/linlaHeaderProgress"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:orientation="vertical"
    Android:visibility="gone" >

    <ProgressBar
        Android:id="@+id/pbHeaderProgress"
        Android:indeterminateOnly="true"
        Android:keepScreenOn="true"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >
    </ProgressBar>
</LinearLayout>

Ensuite, je l'appelle par:

 progressbar = (LinearLayout) findViewById(R.id.linlaHeaderProgress);
 progressbar.setVisibility(View.VISIBLE);

La barre de progression s'affiche et je souhaite en changer la couleur. Par défaut, la barre de progression s'affiche en gris. Voici ce que j'ai essayé de changer de couleur:

J'ai créé un fichier xml dans le dossier drawables et je l'ai nommé activityindicator.xml Le contenu de ce xml est:

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

    <item Android:id="@Android:id/secondaryProgress">


        <color Android:color="#f58233" />
    </item>
    <item Android:id="@Android:id/progress">

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

</layer-list>

Et j'ai changé le fichier de mise en page comme:

<LinearLayout
    Android:id="@+id/linlaHeaderProgress"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:progressDrawable="@drawable/activityindicator"
    Android:orientation="vertical"
    Android:visibility="gone" >

    <ProgressBar
        Android:id="@+id/pbHeaderProgress"
        Android:indeterminateOnly="true"
        Android:keepScreenOn="true"
        Android:progressDrawable="@drawable/activityindicator"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >
    </ProgressBar>
</LinearLayout>

C'est ce que j'ai essayé, mais la couleur ne change pas. Quelqu'un peut-il me dire ce que je fais mal?

J'utilise la version Lollipop.

17
Teja Nandamuri

Si vous souhaitez simplement changer la couleur, ajoutez un filtre de couleur à votre barre de progression:

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.RED, Mode.MULTIPLY);

Le paramètre Mode fait référence aux valeurs PorterDuff.Mode - disponibles ici .

58
Evan Bashir

Je viens de trouver un moyen. Je n'ai même pas besoin d'un fichier xml séparé pour changer la couleur car la barre de progression est de type "indéterminé: vrai"

J'ai utilisé ce qui suit pour changer la couleur de ma barre de progression:

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.parseColor("#C0D000"), Android.graphics.PorterDuff.Mode.SRC_ATOP);

Vous pouvez obtenir une variété de codes de couleur hexadécimaux à partir d'ici: http://www.nthelp.com/colorcodes.htm ou http://www.color-hex.com/ =

9
Teja Nandamuri