2014-06-27 27 views
2

我有一個.xml文檔,它是一個有效的svg圖像。使用SVGSalamander使用有效的svg xml創建SVGIcon

我想用不同的顏色加載此圖標。但我不能。

作爲一個解決方案,首先讀取XML文件作爲字符串和替換顏色的使用簡單與string.replace()

現在我用我的新的XML內容必須創建SVGIcon。

是否可以用SVG Salamander庫做到這一點。

回答

0

隨着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())); 
}