2013-02-27 6 views
9

Ho ispezionato la documentazione della classe Java per Colore e ho scoperto che è possibile generare un oggetto Color da una stringa di codice esadecimale (e.g. "#FFFFFF") utilizzando il metodo Color.decode();.Un modo per ottenere un codice colore esadecimale corrispondente dato un oggetto Color in Java?

Vorrei implementare il processo inverso per un progetto su cui sto lavorando, ma non sembra esserci un metodo già integrato nella classe per questo.

C'è un modo semplice per farlo?

risposta

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

Il mascheramento viene utilizzato per rimuovere il componente alfa, in bit 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

C'è un altro modo. Ho pensato di aggiungere questa alternativa.

// 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());