Konwertuj wartości RGBA na szesnastkowy kod koloru

W mojej aplikacji mam kilka suwaków, które umożliwiają użytkownikowi zmianę kolorów ARGB, jednak muszę je przekonwertować na wartość szesnastkową, taką jak 0xff000000, która jest jednolicie czarna.

Oto, co mam do tej pory:

<code>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;
}
</code>

Jednak po uzyskaniu wartości Integer, jak poniżej, otrzymuję NumberFormatException dla ciągu wejściowego: „0xccffffff”:

<code>int color = toHex(new Color(153f, 153f, 153f, 0.80f));
</code>

Jakieś pomysły, jak uzyskać to do liczby całkowitej? Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion