gpt4 book ai didi

android-studio - 在 Android Studio 中导入 SVG 文件时,渐变没有停止信息错误

转载 作者:行者123 更新时间:2023-12-03 16:54:23 30 4
gpt4 key购买 nike

我正在尝试上传从 Inkscape 导出的 SVG 文件在 Android Studio 中使用 Vector Asset但不幸的是,我遇到了以下错误:

ERROR @line 35: Gradient has no stop info

定义渐变的代码:
<defs
id="defs11210">
<linearGradient
inkscape:collect="always"
id="linearGradient11815">
<stop
style="stop-color:#69aeed;stop-opacity:1"
offset="0"
id="stop11811" />
<stop
style="stop-color:#66e6b2;stop-opacity:0.90909094"
offset="1"
id="stop11813" />
--&gt;
</linearGradient>
<radialGradient <!-- LINE 35-->
inkscape:collect="always"
xlink:href="#linearGradient11815"
id="radialGradient928"
cx="99.615288"
cy="233.88142"
fx="99.615288"
fy="233.88142"
r="80.842598"
gradientTransform="matrix(1,0,0,1.3440437,0,-80.46542)"
gradientUnits="userSpaceOnUse" />
</defs>

我猜 xlink:href="#linearGradient11815"导致问题,但我不明白为什么 Android Studio 无法识别停止信息是引用。

提前致谢。

我将语法更改为 Moini建议但它仍然不起作用:
<stop stop-color="#69aeed"
stop-opacity="1"
offset="0" />
<stop stop-color="#66e6b2"
stop-opacity="0.90909094"
offset="1" />

最佳答案

主要原因是属性 xlink:href 已弃用 根据
MDN Web Docs .
因此我猜它不再被 Android Studio 识别。
我个人通过 File -> Export -> Export As... -> SVG 导入了从 Adob​​e Illustrator 导出的 svg 资源。从 Illustrator 导出的文件利用此属性并导致问题。
解决这个问题 ,只需复制一个 xlink:href 的所有缺少的属性和子元素正在引用调用者元素。
我的 svg 文件中的原始片段如下所示:

<linearGradient id="linear-gradient-23" x1="643.82" y1="401.79" x2="178.79" y2="-321.38" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
<linearGradient id="linear-gradient-24" x1="391.43" y1="437.67" x2="459.26" y2="298.96" xlink:href="#linear-gradient-23"/>
<linearGradient id="linear-gradient-25" x1="608.57" y1="440.97" x2="515.57" y2="257.5" xlink:href="#linear-gradient-23"/>
<linearGradient id="linear-gradient-26" x1="512" y1="551.86" x2="512" y2="-28.38" xlink:href="#linear-gradient-23"/>
<linearGradient id="linear-gradient-27" x1="381.42" y1="391.4" x2="478.72" y2="193.35" xlink:href="#linear-gradient-23"/>
我复制了属性 gradientUnits="userSpaceOnUse"和子元素 <stop .. />来自 "linear-gradient-23"对于引用它的每个元素:
<linearGradient id="linear-gradient-23" x1="643.82" y1="401.79" x2="178.79" y2="-321.38" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
<linearGradient id="linear-gradient-24" x1="391.43" y1="437.67" x2="459.26" y2="298.96" gradientUnits="userSpaceOnUse" xlink:href="#linear-gradient-23">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
<linearGradient id="linear-gradient-25" x1="608.57" y1="440.97" x2="515.57" y2="257.5" gradientUnits="userSpaceOnUse" xlink:href="#linear-gradient-23">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
<linearGradient id="linear-gradient-26" x1="512" y1="551.86" x2="512" y2="-28.38" gradientUnits="userSpaceOnUse" xlink:href="#linear-gradient-23">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
<linearGradient id="linear-gradient-27" x1="381.42" y1="391.4" x2="478.72" y2="193.35" gradientUnits="userSpaceOnUse" xlink:href="#linear-gradient-23">
<stop offset="0" stop-color="#fff" stop-opacity="0"/>
<stop offset="0.98"/>
</linearGradient>
我建议使用像 VSCode 这样的现代文本编辑器来完成这项工作。此外,如果有人知道如何从 Illustrator 导出资源而不会导致问题,请随时发表评论!

更新:正如@mainactivity 所述,GitHub 上有一个用于此转换作业的自动脚本 github.com/14v/svg-non-stop

关于android-studio - 在 Android Studio 中导入 SVG 文件时,渐变没有停止信息错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431043/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com