动态给drawable上色

利用 PorterDuff 改变资源原有色值,从而实现只需要一个资源文件,就可以表示几种不同的状态,如在线或者离线等等

public Drawable colorDrawable(Resources res, @DrawableRes int drawableResId, @ColorRes int colorResId){
Drawable drawable = res.getDrawable(drawableResId);
int color = res.getColor(colorResId);
drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
return drawable;
}

如果项目中有大量这样的表示不同状态的相同图片资源,那么将大大减少APK的体积。

上一篇:Codeforces #380 div2 C(729C) Road to Cinema


下一篇:Solr之搭建Solr5.2.1服务并从Mysql上导入数据