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.
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 .
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/ =