Конвертировать RGB Color в HEX цвет - PullRequest
0 голосов
/ 03 сентября 2018

Я беру цвет с ImageView, используя OnTouchListener.

Красный, Зеленый, Синий цветовой код может быть успешно получен, но я не могу конвертировать RGB в HEX.

пример: мои значения RGB
р: 21

b: 16

г: 228

и соответствующий шестнадцатеричный цвет # 15e410.

Я хочу получить # 15e410. от r: 21, b: 16, g: 228

                int pixel = bitmap.getPixel(x,y);             
                int redValue = Color.red(pixel);
                int blueValue = Color.blue(pixel);
                int greenValue = Color.green(pixel);

                int hexa=  Color.rgb(redValue, greenValue, blueValue);


                Toast.makeText(getApplicationContext(),"hexa ::"+hexa ,Toast.LENGTH_LONG).show();

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Используйте Integer.toHexString(color); для преобразования целого числа в шестнадцатеричную строку.

Пример:

int color = 0xff334433;
String hex = Integer.toHexString(color);
System.out.println(hex); // this prints - ff334433
0 голосов
/ 03 сентября 2018

Решение:

Просто используйте:

String hex = String.format("#%02x%02x%02x", redValue, greenValue, blueValue);

Это преобразует все значения красного, зеленого и синего в шестнадцатеричную строку.

Надеюсь, это поможет.

0 голосов
/ 03 сентября 2018

Вы неправильно отправляете параметры в функцию String.format, чтобы получить hexColor.

Попробуйте это:

String hexColor = String.format("#%06X", redValued, greenValue, blueValue);
...