安卓对图标着色以节省apk体积,网上有很多介绍到的,使用也很简单
<ImageView android:tint="@android:color/white" android:backgroundTint="@android:color/black" />
平时都这样使用,今天得在代码中改,所以记录一下
第一种
Drawable icon;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
icon = getResources().getDrawable( R.drawable.ic_back_black );
}else{
icon = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
ColorFilter filter = new LightingColorFilter( Color.WHITE, Color.WHITE);
icon.setColorFilter(filter);
p_w_picpath.setImageDrawable(icon);
第二种,需要V4包
Drawable icon1;
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP){
icon1 = getResources().getDrawable( R.drawable.ic_back_black );
}else{
icon1 = getResources().getDrawable( R.drawable.ic_back_black ,getTheme());
}
Drawable tintIcon = DrawableCompat.wrap(icon1);
DrawableCompat.setTint(tintIcon, Color.WHITE);
//DrawableCompat.setTintList(tintIcon, Color.WHITE);
titleBack1.setImageDrawable(tintIcon);
好吧,两个都能实现.也不知道哪个更好.
网上有不少相关介绍
http://www.cnblogs.com/helloandroid/p/4779061.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0128/3923.html
转载于:https://blog.51cto.com/qq445493481/1842972