前言:
之前在Android Ui开发中实现ImageView背景图片点击变色,往往会要求UI设计师提供两种不同颜色的图片分别作为selector的不同选中状态下的背景图,可以想象就是仅仅颜色不一样,就需要一个相同大小的图片,这样不仅仅浪费资源,加大res下图片资源体积,而且还需要重新加载一个新图片而导致增加系统负担。所以如果可以利用一种颜色的图片就可以实现出来多种颜色,对这个图片进行着色,实现不同种颜色的背景图片显示,那将大大的减少重复类型的图片。那接下来介绍一个自己封装系support.v4中DrawableCompat.setTintList的实现而来的TintDrawable类。
Drawable.setTintList介绍
这是在系统Api在21开始提供的方法,同时Android Support v4 的包中提供了 DrawableCompat兼容
public void setTintList(@Nullable ColorStateList tint) {}
可以看到在Drawable中并没有实现这个功能,具体均由子