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
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 >=212 Stimmen
android:progressTint="@android:color/white"
wenn Sie nicht-unbestimmte