import java.io.File;
public class AndroidCamera extends Activity implements SurfaceHolder.Callback{
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;;
private Bitmap bitmap;
TextView colorRGB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button testButton = (Button) findViewById(R.id.testButton);
txtData = (EditText) findViewById(R.id.editText1);
//j*******************************************************************************
bitmap=BitmapFactory.decodeFile("/sdcard/folder/tes.jpg");
ImageView imageView=(ImageView)findViewById(R.id.imageView1);
imageView.setImageBitmap(bitmap);
//j*******************************************************************************
testButton.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v)
{
int touchedRGB = bitmap.getPixel(400, 200);
int Red1 = Color.red(touchedRGB);
txtData.setText(Integer.toHexString(Red1));
txtData.setTextColor(Red1);
}});
}
} 我编辑了帖子并添加了必要的代码,以使其更清晰。请找到更新的,并提供解决方案的建议。
很抱歉这篇文章被误删了。我无法从图像中检索红色值。我试过这段代码。此代码是我收到的建议中的更新代码。
答案 0 :(得分:2)
int Red1 = Color.red(touchedRGB);
txtData.setTextColor(Red1);
像素的红色分量不是您可以使用期望ARGB值的setTextColor()
设置的颜色。因此,将R值解释为ARGB将使红色分量值成为蓝色分量值,零alpha即完全透明,因此不可见。
答案 1 :(得分:0)
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
应该够了
答案 2 :(得分:0)
如果您的意思是要求您拥有颜色值(RGB格式),并且想要检索R值,那么您可以通过这种方式获得它,
int r = (your_color_value >> 16) & 0xFF;
与获取G和B值类似,
int g = (your_color_value >> 8) & 0xFF;
int b = (your_color_value >> 0) & 0xFF;