0

所以我继续使用我的应用程序从用户拍摄的照片中挑选颜色并返回 RGB 值。问题是当我尝试获取颜色的绿色值时,我收到一条错误消息“无法在 Primitive Type int 上调用 getGreen()”。这是我写的代码:

Bitmap bitmap = ((BitmapDrawable)iv.getDrawable()).getBitmap(); 
int touchedRGB = bitmap.getPixel(x,y);          
rgbvals.setText("Color Value" + "#" + Integer.toHexString(touchedRGB));
rgbvals.setTextColor(touchedRGB);
int gval = touchedRGB.getgreen();

我还尝试将最后一行写为

    String gval = Integer.toString(touchedRGB).getGreen();

但当然 getGreen() 只能用于 int 类型。提前感谢您的帮助!

4

2 回答 2

1

您可以使用类的静态green方法Color

返回颜色 int 的绿色分量。这与说 (color >> 8) & 0xFF 相同

int gval = Color.green(touchedRGB);

于 2013-10-31T09:18:06.007 回答
0

错误在这里:

touchedRGB.getgreen();

Java 编译器尝试这样说:

由于int touchedRGB = bitmap.getPixel(x,y);touchedRGB是原始数据类型(它是整数),您不能在原始数据类型上调用方法,它们不是对象。

于 2017-11-18T18:38:26.347 回答