Android 给图标着色的方法

参考文章
Drawable 着色的后向兼容方案

为了实现这种效果:

Android 给图标着色的方法_第1张图片

写了一个工具类方法,为ImageView着色(当然也可以把生成drawable的部分独立出来,给button或者edittext的background着色,可以随意扩展):

    //drawable 着色
    public static void setImageViewColor(ImageView view, int colorResId) {
        //mutate()
        Drawable modeDrawable = view.getDrawable().mutate();
        Drawable temp = DrawableCompat.wrap(modeDrawable);
        ColorStateList colorStateList =     ColorStateList.valueOf(view.getResources().getColor(colorResId));
        DrawableCompat.setTintList(temp, colorStateList);
        view.setImageDrawable(temp);
    }

这样使用

AppUtils.setImageViewColor(view,R.color.red);

你可能感兴趣的:(android)