601 Stimmen

So ändern Sie die Farbe des Fortschrittsbalkens in Android

Ich verwende einen horizontalen Fortschrittsbalken in meiner Android-Anwendung, und ich möchte die Fortschrittsfarbe ändern (die standardmäßig gelb ist). Wie kann ich das tun mit code (nicht XML)?

0 Stimmen

Haben Sie versucht, MyProgressBar.setProgressDrawable(Drawable d), die eine Bitmap mit der gewünschten Farbe angibt? developer.Android.com/reference/Android/widget/ developer.Android.com/reference/Android/graphics/drawable/

2 Stimmen

Ja, ich habe es versucht, aber es funktioniert nicht. Es setzt die Hintergrundfarbe der gesamten Fortschrittsbalken-Ansicht, anstatt die Hintergrundfarbe nur des Balkens selbst zu setzen. Danke!

76 Stimmen

android:indeterminateTint="@android:color/white" funktioniert nur bei API >=21

29voto

A.I.Shakil Punkte 374

Vertrauen Sie mir, die einfachste Lösung ist einfach einfügen diese innerhalb progressBar :

android:indeterminateTint="@android:color/white"

25voto

Mughil Punkte 645

Für SDK ver 21 und höher

android:indeterminateTint="@color/orange"

in XML Works ist für mich einfach genug.

0 Stimmen

Wenn Sie dies für die gesamte Anwendung ändern möchten, ändern Sie bitte den Wert von <color name="RedAccent">#FE6C27</color>. in Ihrer Values/colors.xml.

25voto

Paul Punkte 686
android:progressTint="#ffffff"

25voto

Henrique de Sousa Punkte 5592

Heutzutage, im Jahr 2016, habe ich festgestellt, dass einige Vor-Lollipop-Geräte die colorAccent Einstellung, so dass meine endgültige Lösung für alle APIs nun wie folgt aussieht:

// fixes pre-Lollipop progressBar indeterminateDrawable tinting
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

    Drawable wrapDrawable = DrawableCompat.wrap(mProgressBar.getIndeterminateDrawable());
    DrawableCompat.setTint(wrapDrawable, ContextCompat.getColor(getContext(), android.R.color.holo_green_light));
    mProgressBar.setIndeterminateDrawable(DrawableCompat.unwrap(wrapDrawable));
} else {
    mProgressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), android.R.color.holo_green_light), PorterDuff.Mode.SRC_IN);
}

Als Bonuspunkt wird kein veralteter Code verwendet. Probieren Sie es aus!

0 Stimmen

Vergessen Sie nicht anzurufen wrapDrawable.mutate() con DrawableCompat.setTint(wrapDrawable.mutate(), ContextCompat.getColor(getContext(), android.R.color.holo_green_light));

0 Stimmen

Ich habe es gerade (wieder) auf einem neuen 4.4.2 Emulator ausprobiert und es funktioniert ohne Probleme. .xml Einstellungen und auch, wenn etwas anderes die Einstellungen überschreibt ProgressBar Farbe.

24voto

Mark Nashat Punkte 370

ProgressBar innerhalb von Xml hinzufügen

Für SDK ver 21 und höher

android:indeterminateTint="@color/red"

0 Stimmen

Er bat ausdrücklich darum, dies "in Code" zu tun, also in Java, nicht in XML. Es sei denn, er hat das später hinzugefügt, nachdem Sie bereits geantwortet hatten.

0 Stimmen

Ja, das ist bereits geschehen, aber gibt es ein Problem, das Sie vor sich haben, kann ich Ihnen helfen :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X