Mam kilka suwaków w mojej aplikacji, które pozwalają użytkownikowi zmieniać kolory ARGB, ale muszę przekonwertować te wartości na wartość szesnastkową, taką jak 0xff000000, która jest jednolita czarna.Konwertuj wartości RGBA na kod koloru szesnastkowego
To, co mam tak daleko:
protected int toHex(Color col) {
String as = pad(Integer.toHexString(col.getAlpha()));
String rs = pad(Integer.toHexString(col.getRed()));
String gs = pad(Integer.toHexString(col.getGreen()));
String bs = pad(Integer.toHexString(col.getBlue()));
String hex = "0x" + as + rs + gs + bs;
return Integer.parseInt(hex, 16);
}
private static final String pad(String s) {
return (s.length() == 1) ? "0" + s : s;
}
Jednak po uzyskaniu wartość całkowita jak poniżej, otrzymuję NumberFormatException do ciągu wejściowego: „0xccffffff”:
int color = toHex(new Color(153f, 153f, 153f, 0.80f));
jakieś pomysły na jak uzyskać to do liczby całkowitej? Dzięki.
Ah, dzięki. Rozumiem to teraz. Używam Slick do moich fontów i zmieniłem kolor na java.awt.Color. – Kaikz