无法在Primitive Type int上调用getGreen()

时间:2013-10-31 09:14:26

标签: java android image-processing colors

所以我继续使用我的应用程序从用户拍摄的照片中选择颜色并返回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类型。在此先感谢帮助人员!

2 个答案:

答案 0 :(得分:1)

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

  

返回颜色int的绿色成分。这跟说的一样   (颜色>> 8)& 0xFF的

int gval = Color.green(touchedRGB);

答案 1 :(得分:0)

错误在这里:

./run -u Cmdenv ...

Java编译器试图说:

由于touchedRGB.getgreen(); touchRGB是原始数据类型(它是整数),因此无法在原始数据类型上调用方法,它们不是对象。