У меня есть несколько слайдеров в моем приложении, которые позволяют пользователю изменять цвета ARGB, однако мне нужно преобразовать эти значения в шестнадцатеричное значение, такое как 0xff000000, которое является сплошным черным.Преобразование значений RGBA в шестнадцатеричный код цвета
Это то, что я до сих пор:
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? Благодарю.
Ах, спасибо. Теперь он отсортирован. Я использую Slick для своих шрифтов, и теперь я переключил Color на java.awt.Color. – Kaikz