Cómo obtener el color del pixel en Android?

Estoy usando Intent para llamar y mostrar una imagen de Gallery, y ahora he hecho que me permita obtener las coordenadas de la imagen en un TextView usando estos:

final TextView textView = (TextView)findViewById(R.id.textView); final TextView textViewCol = (TextView)findViewById(R.id.textViewColor); targetImage.setOnTouchListener(new ImageView.OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub int x=0; int y=0; textView.setText("Touch coordinates : " + String.valueOf(event.getX()) + "x" + String.valueOf(event.getY())); ImageView imageView = ((ImageView)v); Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); int pixel = bitmap.getPixel(x,y); int redValue = Color.red(pixel); int blueValue = Color.blue(pixel); int greenValue = Color.green(pixel); if(pixel == Color.RED){ textViewCol.setText("It is RED"); } /*if(redValue == 255){ if(blueValue == 0) if(greenValue==0) textViewCol.setText("It is Red"); }*/ return true; } }); 

Ahora lo que tengo que hacer es; Para obtener el colour (RGB value) de las coordenadas exactas que el usuario selecciona y posteriormente asignar cada una a #FF0000 , #00FF00 y #0000FF #00FF00 pero por ahora, por favor ayude a obtener el color de Pixel basado en lo que tengo.

Aclamaciones.

Puede obtener el píxel de la vista de esta manera:

 ImageView imageView = ((ImageView)v); Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); int pixel = bitmap.getPixel(x,y); 

Ahora puede obtener cada canal con:

 int redValue = Color.red(pixel); int blueValue = Color.blue(pixel); int greenValue = Color.green(pixel); 

Las funciones Color devuelven el valor en cada canal. Así que todo lo que tienes que hacer es comprobar si el rojo es 255 y el verde y el azul son 0, que establecer el textView texto a "es rojo". Sólo preste atención que decir que algo es rojo no es simplemente que el canal rojo es el mayor de cero. 'Cos 255-Green y 255-Red es amarillo, por supuesto. También puede comparar el píxel con un color diferente. por ejemplo:

 if(pixel == Color.MAGENTA){ textView.setText("It is Magenta"); } 

Espero eso ayude.

Usted puede modificar esto para su requisito. Este fragmento te ayudará a obtener el color del píxel.

 public static int getDominantColor(Bitmap bitmap) { Bitmap newBitmap = Bitmap.createScaledBitmap(bitmap, 1, 1, true); final int color = newBitmap.getPixel(0, 0); newBitmap.recycle(); return color; } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.