1

so ein anderer Tag, ein anderes Problem! Ich habe ein ImageView mit einer Tönung eingestellt, wie folgt:android imageview Tönung in Xml gesetzt überschreibt Tönung auf DrawableCompat programmiert

<ImageView 
    android:id="@+id/image_money" 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:padding="3dp" 
    android:src="@drawable/ic_money_icon" 
    android:tint="#c7c7c7"/> 

Und ich muss zurückkehren oder die tintColor gesetzt, so habe ich DrawableCompat wie folgt:

Drawable imagem = holder.view.getContext().getResources().getDrawable(R.drawable.ic_money_icon); 
imagem = DrawableCompat.wrap(imagem); 
imagem = imagem.mutate(); 
DrawableCompat.setTint(imagem,Color.parseColor("#43a085")); 
holder.imageDebito.setImageDrawable(imagem); 

ich die Bitmap geprüft auf imagem und es sieht so aus, wie es sollte, mit der Farbe, die ich eingestellt habe, aber wenn es auf das ImageView imageDebito angewendet wird, wird es auf den Farbton zurückgesetzt, der auf dem XML festgelegt wird. Wenn ich ein anderes Bild verwende, das nicht in der Ansicht verwendet wird, verwende den Farbton und setze es dann auf das ImageView, es erhält den gleichen Farbton aus dem XML ... Ich habe versucht, setImageTintList() Einstellung, aber es ist nicht verfügbar auf API-Ebene 17 ...

Also muss ich entweder die Farbtoneigenschaft entfernen oder den Farbton auf dem Bild über den ImageView's aus dem XML erzwingen.

Antwort

1

Verwenden Sie setColorFilter() Methode.

Drawable myIcon = getResources().getDrawable(R.drawable.button); 
ColorFilter filter = new LightingColorFilter(Color.BLACK, Color.BLACK); 
myIcon.setColorFilter(filter); 

Edit: verbessert nur die Formatierung ...

Verwandte Themen