在Android中获取像素颜色

时间:2015-08-09 17:42:13

标签: android colors pixel

我使用此代码获取像素颜色,但每次触摸屏时都会给我新的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;
        }
    });
}

1 个答案:

答案 0 :(得分:1)

代码对我来说是正确的。我认为你无法触及一个像素。为了检查它,您还可以在文本中显示x和y值。其次,即使两种颜色看起来非常相似,它们的RGB值也会有很大差异。 (对于人眼来说,还有其他颜色空间在颜色和特征方面更直观,例如HSV,其中Hue是基本颜色,该颜色是饱和度,V是亮度。)