设置色调之前在23.2.0中有效。当我将版本更改为23.2.1时,以下代码不再为我的ImageViews着色。
我有一个定义为
的图像视图列表List<ImageView> statusStage = new ArrayList<>();
我使用以下方法更新图像色调。
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);
}
}
现在setTint的方式有何不同? 我需要更改代码才能使其适用于新版本?
带有错误的appcompat版本。
compile 'com.android.support:appcompat-v7:23.2.1'
答案 0 :(得分:0)
您似乎错过了在那里拨打setImageDrawable()
。
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
}
}
我还建议您使用setTintList()
代替setTint()
代表州。