如何从rgb值获取红色值:android

时间:2013-12-02 11:06:51

标签: android

  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);

        }});

}   

} 我编辑了帖子并添加了必要的代码,以使其更清晰。请找到更新的,并提供解决方案的建议。

很抱歉这篇文章被误删了。我无法从图像中检索红色值。我试过这段代码。此代码是我收到的建议中的更新代码。

3 个答案:

答案 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;