我使用此代码获取像素颜色,但每次触摸屏时都会给我新的RGB代码 我不知道为什么! 我触摸相同的像素
private void color1() {
final Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
int pixel = bitmap.getPixel(x, y);
int redValue = Color.red(pixel);
int greenValue = Color.green(pixel);
int blueValue = Color.blue(pixel);
textView.setText("R= " + redValue + "B= " + blueValue + "G= " + greenValue);
Toast.makeText(G.context, "R= " + redValue + "G= " + greenValue + "B= " + blueValue, Toast.LENGTH_LONG).show();
return true;
}
});
}
答案 0 :(得分:1)
代码对我来说是正确的。我认为你无法触及一个像素。为了检查它,您还可以在文本中显示x和y值。其次,即使两种颜色看起来非常相似,它们的RGB值也会有很大差异。 (对于人眼来说,还有其他颜色空间在颜色和特征方面更直观,例如HSV,其中Hue是基本颜色,该颜色是饱和度,V是亮度。)