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 引用颜色资源导致的错误了。

Android SVG 文件报错:Invalid color value @color/... 解决方法

原文地址: https://www.cveoy.top/t/topic/jkoH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录