Ответ 1
Ответ на st0le неверен относительно цветов. Он не работает, если первые компоненты цвета равны 0. Поэтому toHexString бесполезен.
Однако этот код будет работать как ожидалось:
String strColor = String.format("#%06X", 0xFFFFFF & intColor);
public static int RGB(float[] hsv) {
return Color.HSVToColor(hsv);
}
эта функция добавляет int, froma color. как я могу преобразовать этот int в строку hexa: #efefef
Ответ на st0le неверен относительно цветов. Он не работает, если первые компоненты цвета равны 0. Поэтому toHexString бесполезен.
Однако этот код будет работать как ожидалось:
String strColor = String.format("#%06X", 0xFFFFFF & intColor);
Вот два способа преобразования целых чисел в шестнадцатеричные строки...
int n = 123456;
System.out.println(String.format("#%X", n)); //use lower case x for lowercase hex
System.out.println("#"+Integer.toHexString(n));
Если вы хотите конвертировать в формат javascript:
val hexColor = String.format("%06X", 0xFFFFFFFF.and(R.color.text.toColorInt(context).toLong()))
val javascriptHexColor = "#" + hexColor.substring(2) + hexColor.substring(0, 2)