gpt4 book ai didi

java - 使用带有 SVGSalamander 的有效 svg xml 创建 SVGIcon

转载 作者:行者123 更新时间:2023-11-29 08:47:19 25 4
gpt4 key购买 nike

我有一个 .xml 文档,它是一个有效的 SVG 图像。

我想用不同的颜色加载这个图标。但我做不到。

作为解决方案,我首先将 xml 文件读取为字符串并使用简单的 String.replace() 替换颜色

现在我必须使用我的新 XML 内容创建一个 SVGIcon。

是否可以使用 SVG Salamander 库执行此操作。

最佳答案

使用 SVG 蝾螈:

从缓存中获取图表并调用递归搜索和替换:

SVGDiagram diagram = SVGCache.getSVGUniverse().getDiagram(uri);
setStroke(Color.BLACK, getHexString(Color.GREEN), diagram.getRoot());

函数代码:

private void setStroke(Color fromColor, String toColor, SVGElement node) throws SVGException {
if (node.hasAttribute("stroke", AnimationElement.AT_CSS)) {
StyleAttribute abs = node.getStyleAbsolute("stroke");
Color was = abs.getColorValue();
if (was.equals(fromColor)) {
abs.setStringValue(toColor);
}
}
for (int i = 0; i < node.getNumChildren(); ++i) {
setStroke(fromColor, toColor, node.getChild(i));
}
}

private String getHexString(Color color) {
return String.format("#%06x", (0xFFFFFF & color.getRGB()));
}

关于java - 使用带有 SVGSalamander 的有效 svg xml 创建 SVGIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24454491/

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