2017-04-10 6 views
1

Ich möchte den Hintergrund einer Ansicht ändern und das ist der einzige Weg, den ich gefunden habe. Aber ich bekomme eine Nachricht, dass es nur mit bestimmten APIs funktioniert. Kann ich es irgendwie bis zu API 15 arbeiten lassen? Oder gibt es eigentlich eine bessere Methode, um dem Benutzer eine Schaltfläche anzuzeigen?View.setBackgroundTintList vor API 21?

Antwort

2

ViewCompat.setBackgroundTintList() wird der Trick bis API 4.

Wendet einen Farbton auf dem Hintergrund ziehbar.

Dies wird immer wirksam, wenn auf API v21 oder neuer ausgeführt wird. Wenn es auf Plattformen vor API v21 ausgeführt wird, wird es nur wirksam, wenn View die Schnittstelle TintableBackgroundView implementiert.

+0

Danke es funktioniert, obwohl das Klicken hat diese wirklich hässliche Animation. – newToEverything

1

Ja,

Verwendung von Java-Code können Sie auf diese Weise so wie ziehbar Farbe jeder Ansicht ändern:

public static void setIconColor(TextView tv, int which, int color) { 
     tv.getCompoundDrawables()[which].mutate(); 
     tv.getCompoundDrawables()[which].setColorFilter(ContextCompat.getColor(tv.getContext(), color), PorterDuff.Mode.SRC_ATOP); 
    } 

    public static void setIconColor(ImageView imageView, int color) { 
     imageView.getDrawable().mutate(); 
     imageView.getDrawable().setColorFilter(ContextCompat.getColor(imageView.getContext(), color), PorterDuff.Mode.SRC_ATOP); 
    } 

Für User Button Ausgewählte? Sie sollten verwenden

android:background="?attr/selectableItemBackground" 

Ich hoffe, es hilft Ihnen!

Verwandte Themen