9
votes

Android ProgressBar: Comment définir une couleur secondaire par programme

J'ai besoin de définir la couleur de la barre de progression secondaire programmatique .

Je ne vois que la méthode xxx

pour définir la couleur primaire, mais Il n'y a pas de méthode pour définir la couleur secondaire.

Comment puis-je le faire?


1 commentaires

Michele, êtes-vous trouvé solution? je suis coincé aussi avec ce problème :(


4 Réponses :


2
votes

Le pipable Vous spécifiez à l'aide de SetProgressDrawable code> a de l'arrière-plan, des tiroirs primaires et secondaires. Voici un Exemple de ProgressBar code> Diable expédié avec Android:

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

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dip" />
            <gradient ...  />
        </shape>
    </item>

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

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />
                <gradient ...  />
            </shape>
        </clip>
    </item>

</layer-list> 


2 commentaires

Bonjour, merci de réponse. Mais je dois le faire avec Java pas avec XML.


J'ai aussi voulu faire en Java, mais créer deux fichiers XML (ou plus compte tenu de vos besoins) et la sélection de celui que vous vouliez est si facile, rapide et propre, je suis bloqué avec cette méthode.



5
votes

progressifbar.getProgressDrawable () code> renvoie un couchedrawable code> dans lequel: xxx pré>

J'essaie de modifier les couleurs whit (exemple): P>

progressDrawable.setDrawableByLayerId(progressDrawable.getId(2), new ClipDrawable(...));


1 commentaires

Exactement ce dont j'avais besoin. C'est génial!



3
votes

Probablement pas pertinent pour Michele, mais peut-être peut-être aidera quelqu'un d'autre ..

ProgressBar progress = (ProgressBar) fullView.findViewById(R.id.main_progressbar);
LayerDrawable progressDrawable = (LayerDrawable)progress.getProgressDrawable();
Drawable drawable = activity.getResources().getDrawable(R.drawable.WHATEVER_YOU_WANT);
ClipDrawable cd = new ClipDrawable(drawable, Gravity.LEFT,ClipDrawable.HORIZONTAL);
progressDrawable.setDrawableByLayerId(android.R.id.progress, cd);


0 commentaires

0
votes

Cochez cette page

Vous pouvez utiliser un XML diguré comme celui-ci pour définir progressendrawable

xxx

renvoyer ce lien

https://stackoverflow.com/a/271444594/1554031


0 commentaires