Преобразование значений RGBA в шестнадцатеричный цветовой код

В моем приложении есть несколько ползунков, которые позволяют пользователю изменять цвета ARGB, однако мне нужно преобразовать эти значения в шестнадцатеричное значение, например 0xff000000, которое является сплошным черным.

Это то, что у меня есть на данный момент.:

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

Однако при получении значения Integer, как показано ниже, я получаю исключение NumberFormatException для входной строки. :"0xccffffff":

int color = toHex(new Color(153f, 153f, 153f, 0.80f));

Есть идеи, как преобразовать это в Integer? Спасибо.

5
задан Kaikz 5 May 2012 в 07:37
поделиться