2013-02-27 1 views
9

Ich habe die Java-Klassendokumentation für Color untersucht und festgestellt, dass ich ein Color-Objekt aus einer Hex-Codefolge (e.g. "#FFFFFF") mit der Color.decode();-Methode generieren kann.Eine Möglichkeit, einen entsprechenden Hex-Farbcode für ein Color-Objekt in Java zu erhalten?

Ich möchte den umgekehrten Prozess für ein Projekt, an dem ich arbeite, implementieren, aber es scheint keine Methode dafür in der Klasse eingebaut zu sein.

Gibt es eine einfache Möglichkeit, dies zu tun?

Antwort

19
String.format("#%06x", color.getRGB() & 0x00FFFFFF) 

Die Maskierung wird 24-31

3
Color color = Color.BLUE; 
Formatter f = new Formatter(new StringBuffer("#")); 
f.format("%02X", color.getRed()); 
f.format("%02X", color.getGreen()); 
f.format("%02X", color.getBlue()); 
f.toString(); //#0000FF 
0

Es gibt eine andere Art und Weise in Bits, die für das Entfernen der Alpha-Komponente, verwendet. Dachte, ich füge einfach diese Alternative hinzu.

// ARGB = (255, 255, 0, 0) (Red) 
// hex -> "ffff0000" 
String hex = Integer.toHexString(color.getRGB()); 

// Reduced to RGB: hex -> "#ff0000" 
hex = "#" + hex.substring(2, hex.length()); 
Verwandte Themen