2015-03-08 2 views
4

У меня есть код, который может давать только шестнадцатеричный код на сенсорном пикселе на изображении. Теперь я хочу также указать название цвета. Как это возможно с помощью Android? Пожалуйста, предложите способ.Как я могу указать имя цвета против шестнадцатеричного цветового кода?

public boolean onTouch(View v, MotionEvent event) { 
       // get x coordinates 
       int x = (int) event.getX(); 
       // get y coordinates 
       int y = (int) event.getY(); 
       // get bitmap in touch listener 
       final Bitmap bitmap = ((BitmapDrawable) image.getDrawable()).getBitmap(); 
       //xand y coordinates stored in to pixel 
       int pixel = bitmap.getPixel(x, y); 
       //RGB values 
       redValue = Color.red(pixel); 
       blueValue = Color.blue(pixel); 
       greenValue = Color.green(pixel); 

       selected_colour.setText(""+redValue+""+blueValue+""+greenValue); 
       selected_colour.setText("touched color:" + "#" + Integer.toHexString(redValue) + Integer.toHexString(greenValue) + Integer.toHexString(blueValue)); 

       selected_colour.setTextColor(pixel); 

       return false; 
      } 
     }); 
+1

Есть 16727215 разных цветовых кодов. Я сомневаюсь, что есть достаточно названий цветов, чтобы назвать все эти. – Simas

+0

да, но я должен добавить как можно больше. – user4440416

+0

есть ли в андроиде библиотека в формате цветного шестнадцатеричного цвета? – user4440416

ответ

3

Что вы просите это немного сложнее, потому что, хотя есть много цветов, чьи имена широко согласованы (например, FFFFFF называется «Белой» везде), большинство других названий цветов не являются глобальную конвенцию, но скорее развитую конкретными людьми, которые называют цвета.

Это, как говорится, есть несколько инструментов, которые могут это сделать. Проверьте this link, это веб-сайт, на котором вы можете указать цвет в шестнадцатеричном коде, и он назовет его в соответствии с ближайшим заранее определенным списком имен цветов.

Вы можете просмотреть javascript code и адаптировать его к Android. Это довольно простой алгоритм, который измеряет расстояние цвета, которое вы дали ближайшему попаданию в предопределенный список цветов, путем измерения расстояния в RGB и HSL.

+0

спасибо alott :) – user4440416

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