Значения от RGB до HEX

Привет, ребята, так что я в основном строю приложение для Android, которое может отображать информацию о цвете с помощью камеры. В настоящее время приложение получает информацию о пикселях и отображает значения RGB в текстовом представлении. Я хотел бы расширить его и добавить текстовое представление, которое может отображать значения HEX, но я не уверен, как преобразовать его и отобразить. Я уверен, что мне нужно внести изменения ниже...

public void pix(){
        operation= Bitmap.createBitmap(bmp.getWidth(),
                bmp.getHeight(),bmp.getConfig());

        int height = bmp.getHeight();
        int width = bmp.getWidth();
        int p = bmp.getPixel(height / 2, width / 2);

        int r = Color.red(p);
        int g = Color.green(p);
        int b = Color.blue(p);

       // Toast.makeText(this, String.valueOf(r) + String.valueOf(g) + String.valueOf(b), Toast.LENGTH_LONG).show();
        colourbbox1.setText( String.valueOf(r) + String.valueOf(g) + String.valueOf(b));

        colourbbox2.setText( String.valueOf(r) + String.valueOf(g) + String.valueOf(b));

colorbbox2 - это предполагаемый вид текста. Любая помощь приветствуется.

(до сих пор ява новичок к вашему сведению)

3 ответа

Решение

Преобразуйте значения int в шестнадцатеричные представления:

String hexadecimal = String.format("#%02X%02X%02X", r, g, b);

Добавьте к вашему TextView:

colourbbox2.setText(hexadecimal);

Вы можете использовать Integer.toHexString ():

colourbbox2.setText(Integer.toHexString(r) + Integer.toHexString(g) + Integer.toHexString(b));

Пытаться: String hexColor = String.format( "#%02x%02x%02x", r, g, b );

Другие вопросы по тегам