2016-03-24 8 views
3

Das Einstellen des Farbtons funktionierte bisher in 23.2.0. Wenn ich die Version auf 23.2.1 ändere, tönen die folgenden Codes meine ImageViews nicht mehr.DrawableCompat.setTint() funktioniert nicht mehr mit appcompat-v7 23.2.1

Ich habe eine Liste der Bildansicht definiert als

List<ImageView> statusStage = new ArrayList<>(); 

und ich des Farbtons aktualisieren unter Verwendung des Verfahrens.

public void setStatusStage(int stageComplete, int colorOn) { 
    for (int i = 0; i < statusStage.size(); i++) { 
     ImageView ss = statusStage.get(i); 
     Drawable dr = DrawableCompat.wrap(ss.getDrawable()); 
     DrawableCompat.setTint(dr, colorOn); 
     print("stage Complete:" + stageComplete+", "+i); 
    } 
} 

Ist der Weg zu SetTint jetzt anders? Was muss ich in meinen Codes ändern, damit es für die neue Version funktioniert?

Die appcompat-Version mit dem Fehler.

compile 'com.android.support:appcompat-v7:23.2.1' 

Antwort

0

Sieht aus wie Sie setImageDrawable() nennen es verpasst haben.

public void setStatusStage(int stageComplete, int colorOn) { 
    for (int i = 0; i < statusStage.size(); i++) { 
     ImageView ss = statusStage.get(i); 
     Drawable dr = DrawableCompat.wrap(ss.getDrawable()); 
     DrawableCompat.setTint(dr, colorOn); 
     print("stage Complete:" + stageComplete+", "+i); 
     ss.setImageDrawable(dr); //this part 
    } 
} 

Ich schlage vor, Sie auch setTintList() statt setTint() zu verwenden Zustände darzustellen.

+1

Der Fehler besteht weiterhin mit ss.setImageDrawable (dr); Dieser Fehler tritt nur bei 23.2.1 auf, aber nicht bei früheren Versionen. –

Verwandte Themen