作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 .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/
我曾为 iText PDF 文档进行 SVG 图像渲染。为此,我使用 SVGSalamander 将 SVG 转换为图像格式。它工作正常,但有一个奇怪的行为,即某些 SVG 图像在某些图像正在渲染时无
我有一个 .xml 文档,它是一个有效的 SVG 图像。 我想用不同的颜色加载这个图标。但我做不到。 作为解决方案,我首先将 xml 文件读取为字符串并使用简单的 String.replace() 替
我是一名优秀的程序员,十分优秀!