2
我有一個.xml文檔,它是一個有效的svg圖像。使用SVGSalamander使用有效的svg xml創建SVGIcon
我想用不同的顏色加載此圖標。但我不能。
作爲一個解決方案,首先讀取XML文件作爲字符串和替換顏色的使用簡單與string.replace()
現在我用我的新的XML內容必須創建SVGIcon。
是否可以用SVG Salamander庫做到這一點。
我有一個.xml文檔,它是一個有效的svg圖像。使用SVGSalamander使用有效的svg xml創建SVGIcon
我想用不同的顏色加載此圖標。但我不能。
作爲一個解決方案,首先讀取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()));
}