Android конвертировать цвет int в hexa String

public static int RGB(float[] hsv) {
    return Color.HSVToColor(hsv);
}

эта функция добавляет int, froma color. как я могу преобразовать этот int в строку hexa: #efefef

Ответ 1

Ответ на st0le неверен относительно цветов. Он не работает, если первые компоненты цвета равны 0. Поэтому toHexString бесполезен.

Однако этот код будет работать как ожидалось:

String strColor = String.format("#%06X", 0xFFFFFF & intColor);

Ответ 2

Вот два способа преобразования целых чисел в шестнадцатеричные строки...

    int  n = 123456;
    System.out.println(String.format("#%X", n)); //use lower case x for lowercase hex
    System.out.println("#"+Integer.toHexString(n));

Ответ 3

Если вы хотите конвертировать в формат javascript:

val hexColor = String.format("%06X", 0xFFFFFFFF.and(R.color.text.toColorInt(context).toLong()))

val javascriptHexColor = "#" + hexColor.substring(2) + hexColor.substring(0, 2)