594 Stimmen

Wie kann man die Tönung für ein Bildansicht programmatisch in Android festlegen?

Müssen für ein ImageView einen Farbton einstellen... Ich benutze es auf folgende Weise:

imageView.setColorFilter(R.color.blue, android.graphics.PorterDuff.Mode.MULTIPLY);

Aber es ändert sich nicht...

1voto

Adarsh Srivastava Punkte 466

Haftungsausschluss: Dies ist nicht die Antwort auf diesen Beitrag. Aber es ist die Antwort auf diese Frage, d.h. wie man die Farbe/Tönung des Drawable oder ImageView zurücksetzen kann. Entschuldigung, dass ich das hier platziert habe, da diese Frage keine Antworten akzeptiert und auf diesen Beitrag für Antworten verweist. Also füge ich es hier hinzu, damit jemand, der nach einer Lösung sucht, hierher gelangen könnte.

Wie von @RRGT19 im Kommentar von dieser Antwort erwähnt. Wir können die Farbe zurücksetzen, indem wir setImageTintList() verwenden und null als tintList übergeben. Es hat magisch für mich funktioniert.

ImageViewCompat.setImageTintList(imageView, null)

0voto

harry Punkte 31

Wenn Sie die Farbe beim Fokuswechsel ändern, versuchen Sie dies bitte

DrawableCompat.setTint(imgView.getDrawable(),
                 ContextCompat.getColor(context, R.color.blue));

0voto

Annas Bin Waheed Punkte 281

Nachdem ich alle Methoden ausprobiert habe und sie für mich nicht funktioniert haben.

Ich finde die Lösung vor allem dann, wenn Sie die Farbe durch eine ColorPicker-Bibliothek ändern, die einen Integer-Wert von selectedColor zurückgibt.

widgetIcon ist mein ImageView und selectedColor ist die Farbe aus dem ColorPicker.

var imageDrawable: Drawable = widgetIcon.background
        imageDrawable = DrawableCompat.wrap(imageDrawable)
        DrawableCompat.setTint(imageDrawable, selectedColor)
        widgetIcon.background = imageDrawable

0voto

Sunil Sapkota Punkte 1016
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                menuIcon.setImageTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.primary)));
            }

Ich benutze dieses Stück Code, um die Farbe meines Menüsymbols zu ändern. Hoffentlich hilft das.

-4voto

Shubham Chaudhary Punkte 41926

Nicht die genaue Antwort, aber eine einfachere Alternative:

  • Platzieren Sie eine weitere Ansicht über dem Bild.
  • Ändern Sie den Alpha-Wert der Ansicht nach Belieben (programmgesteuert), um den gewünschten Effekt zu erzielen.

Hier ist ein Code-Schnipsel dafür:

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