在平时的开发中,我们会碰到一个图标,图案不变,颜色需要变的情况,这时候可以用DrawableCompat给图片动态着色。
需要用到的API:
wrap(Drawable drawable)
setTint(Drawable drawable, int tint)
举个例子:
//拿到图标对象
Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.ic_launcher);
//这里我的理解是对图标对象进行初始化
Drawable warpDrawable = DrawableCompat.wrap(drawable);
//获取颜色
int color = ContextCompat.getColor(context,android.R.color.holo_red_dark);
//对图像对象进行重新着色
DrawableCompat.setTint(warpDrawable, color);
//把图像对象给控件赋值
imageView.setImageDrawable(warpDrawable);