it-swarm.com.de

Lutscher-Fortschrittsbalken

Ich befinde mich auf einem Lollipop-Gerät (MotoG 2014). Ich las über das Fortschrittsbalken-Tönen, aber das funktioniert nicht ... Ich bekomme die Standard-Fortschrittsbalkenfarbe. Was fehlt mir hier?

<ProgressBar
    style="?android:attr/progressBarStyleLarge"
    Android:layout_width="50dp"
    Android:layout_height="50dp"
    Android:backgroundTintMode="src_in"
    Android:indeterminate="true"
    Android:indeterminateTint="#f00" />

Danke vielmals.

21
Jumpa

Die akzeptierte Lösung funktionierte für Pre-Lollipop nicht, aber ich fand diese Lösung für alle APIs. Außerdem wurde kein veralteter Code verwendet:

// 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);
}

Viel Spaß beim Codieren!

32

Versuchen Sie, Ihre ProgressBar hier zu ändern

<ProgressBar
Android:id="@+id/view_progress"
style="?android:attr/progressBarStyleLarge"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:indeterminate="true"
Android:indeterminateTintMode="src_in"
Android:indeterminateTint="@color/red"
/>

Sie können dies auch programmgesteuert tun:

ProgressBar progressBar;
progressBar = (ProgressBar)findViewById(R.id.view_progress);
progressBar.getProgressDrawable().setColorFilter(Color.RED, Mode.SRC_IN);

Verweise

Einstellung in ProgressBar Farbtonfarbe

57
Skizo-ozᴉʞS

Um zu vermeiden, dass auch der Hintergrund der ProgressBar eingefärbt wird, sollten Sie einen Verweis auf die genaue Bitmap von der inneren ProgressBarLayerDrawable erhalten. Dies ist eine harte Art, es zu tun, aber es funktioniert.

LayerDrawable layerDrawable = (LayerDrawable) progressBar.getProgressDrawable();
Drawable drawable = layerDrawable.getDrawable(2); // The progress bitmap
drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
2
Miltos
/**change your progress drawable asrequired****/

   Drawable wrapDrawable = DrawableCompat.wrap(_progress.getIndeterminateDrawable());
   DrawableCompat.setTint(wrapDrawable, ContextCompat.getColor(this, R.color.colorOrange));
  _progress.setIndeterminateDrawable(DrawableCompat.unwrap(wrapDrawable));
0
DeepakPanwar