2015-04-10 5 views
0

Привет, ребята, поэтому я создаю приложение для Android, которое может отображать информацию о цвете с помощью камеры. в настоящее время приложение получает информацию о пикселях и отображает значения RGB в текстовом виде. Я хотел бы расширить его и добавить текстовое представление, которое может показывать значения HEX, но я не уверен, как его преобразовать и отобразить. я уверен, что мне нужно внести изменения ниже ...Значения Int 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 - предназначенный текст. Любая помощь приветствуется.

(еще ява новичок FYI)

+0

Также вы можете использовать, 'colourbbox2.setText (string.Format ("#% 02x% 02x% 02x", г, г, б)),' – user370305

ответ

0

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

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

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

colourbbox2.setText(hexadecimal); 
+0

Это работало отлично, спасибо, я хотел бы спросить, почему его отформатирован как «% 02x% 02x% 02x»? Я полагаю, что что-то подобное будет работать для преобразования HSV? – leo666

1

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

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

Try: String hexColor = String.format("#%02x%02x%02x", r, g, b);

 Смежные вопросы

  • Нет связанных вопросов^_^