解决SVG文件无法识别@color颜色值报错: java.lang.IllegalArgumentException
解决SVG文件无法识别@color颜色值报错: java.lang.IllegalArgumentException
在Android开发中,如果在SVG文件中使用'@color/account_iv_contact_top_color'这样的语法来引用颜色资源,会遇到'Caused by: java.lang.IllegalArgumentException: Invalid color value @color/account_iv_contact_top_color'的错误。这是因为SVG文件无法直接解析Android资源文件中的颜色值。
解决方法:
在SVG文件中直接使用颜色值,而不是使用'@color'引用资源文件。
例如,如果'@color/account_iv_contact_top_color'的值是'#FF0000',则在SVG文件中直接使用'#FF0000'即可。
代码示例:
错误示范:
<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<rect x='0' y='0' width='100' height='100' fill='@color/account_iv_contact_top_color'/>
</svg>
正确示范:
<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<rect x='0' y='0' width='100' height='100' fill='#FF0000'/>
</svg>
如果需要在多个文件中使用相同的颜色值,可以将颜色值定义在一个单独的XML文件中,然后在SVG文件中引用该文件。
- 定义颜色值:
<resources>
<color name='account_iv_contact_top_color'>#FF0000</color>
</resources>
- 在SVG文件中引用颜色值:
<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100'>
<rect x='0' y='0' width='100' height='100' fill='@android:color/account_iv_contact_top_color'/>
</svg>
通过以上方法,就可以在SVG文件中使用Android资源文件中定义的颜色值了。
原文地址: https://www.cveoy.top/t/topic/jkoT 著作权归作者所有。请勿转载和采集!