DrawableCompat.setTint()不再使用appcompat-v7 23.2.1

时间:2016-03-24 02:52:19

标签: android android-support-library android-appcompat

设置色调之前在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'

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()代表州。