基本的には以下の2つの障害があります。
- カーソルがクリックされた座標の画像の背景色を取得したい。コードは初めて色と座標を取得しています。しかし、もう一度クリックするとエラーが発生します。
- RGB整数値ではなく16進数で画像の色を取得し、その特定の色が見つかった特定の領域でその特定の色を変更したいと思います。
コードは次のとおりです。
private ImageView mImageView;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.vp_view_img);
if(getIntent().hasExtra("BitmapImage"))
{
final Bitmap bitmap = (Bitmap) getIntent().getParcelableExtra("BitmapImage");
mImageView = (ImageView) findViewById(R.id.canvas_image);
mImageView.setImageBitmap(bitmap);
mImageView.setOnTouchListener(new ImageView.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
/*Toast.makeText(getBaseContext(), "Touch coordinates : "
+ String.valueOf(event.getX()) + "x"
+ String.valueOf(event.getY()),
Toast.LENGTH_SHORT).show();*/
ImageView imageView = (ImageView) v;
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
int pixel = bitmap.getPixel(x,y);
int redValue = Color.red(pixel);
int blueValue = Color.blue(pixel);
int greenValue = Color.green(pixel);
Toast.makeText(getBaseContext(), "Color Code :"+
redValue+blueValue+greenValue,Toast.LENGTH_SHORT).show();
return true;
}
});
}
else
{
Toast.makeText(getBaseContext(),
"No Image Found",
Toast.LENGTH_LONG).show();
}
}