Android SVG 文件报错:Invalid color value @color/... 解决方法
Android SVG 文件报错:Invalid color value @color/... 解决方法
在 Android 开发中,如果在 SVG 文件中使用 @color/account_iv_contact_top_color 这样的语法来引用颜色资源,会导致程序抛出 'java.lang.IllegalArgumentException: Invalid color value' 的异常。
这是因为 SVG 文件本身并不支持 Android 的资源引用方式。
解决方法
有两种解决方法可以解决这个问题:
1. 使用实际颜色值替换 @color 引用
将 SVG 文件中的 @color/account_iv_contact_top_color 替换成实际的颜色值,例如 #FF0000。
示例:
<svg ...>
<path fill='#FF0000' />
</svg>
2. 在代码中动态设置 SVG 颜色
可以在 Java 代码中动态加载 SVG 文件,并使用 DrawableCompat.setTint() 方法设置 SVG 元素的颜色。
示例:
// 加载 SVG 文件
Drawable drawable = AppCompatResources.getDrawable(context, R.drawable.my_svg);
// 获取颜色资源
int color = ContextCompat.getColor(context, R.color.account_iv_contact_top_color);
// 设置 SVG 颜色
DrawableCompat.setTint(drawable, color);
通过以上两种方法,您就可以解决 SVG 文件中使用 @color 引用颜色资源导致的错误了。
原文地址: https://www.cveoy.top/t/topic/jkoH 著作权归作者所有。请勿转载和采集!