Android动态修改vector颜色
android为我们是提供了在代码中动态设置 vector 的颜色的方法。
- 这是一个 svg 类型的返回 icon,取名icon_back.xml,可以直接放在drawlable文件夹中
- 这是一个 Toolbar 用于盛放返回 icon
- 在代码中动态设置 vector 的颜色
Toolbar toolbar = findViewById(R.id.toolbar);
VectorDrawableCompat vectorDrawableCompat = VectorDrawableCompat.create(getResources(), R.drawable.icon_back, null);
//设置title文字颜色
toolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
//你需要改变的颜色
vectorDrawableCompat.setTint(ContextCompat.getColor(getApplicationContext(), R.color.black));
toolbar.setNavigationIcon(vectorDrawableCompat);
- colors 里的颜色值
#000000
最后,有个小坑,如果在共用控件的 base 类 设置了修改 vector 颜色,你会发现一个页面设置了以后,剩余的几个页面也被设置了,所以遇到这种情况可以加判断条件,满足条件的设置对应的颜色,不满足条件的设置默认颜色(这里默认为白色)
例如:
base 中:
protected void setToolBarColor(int color) {
Toolbar toolbar = findViewById(R.id.toolbar);
VectorDrawableCompat vectorDrawableCompat = VectorDrawableCompat.create(getResources(), R.drawable.icon_back, null);
if (color > 0) {
toolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), color));
//你需要改变的颜色
vectorDrawableCompat.setTint(ContextCompat.getColor(getApplicationContext(), color));
} else {
vectorDrawableCompat.setTint(ContextCompat.getColor(getApplicationContext(), R.color.white));
}
toolbar.setNavigationIcon(vectorDrawableCompat);
}
调用:
setToolBarColor(R.color.black);//设置黑色
或者
setToolBarColor(-1); //使用默认值
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/47760.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论