我在显示的imageview中选择了一些图像区域。然后我对该位图的选定像素进行一些工作,该像素显示在imageview中。但我无法击中用户选择的那些像素。我知道我必须对显示的图像和实际的位图进行像素映射。请参阅图片以更好地了解我的问题。
用户使用循环选择器选择一些像素
处理后,受影响的像素与用户选择的像素不同
我尝试过这样的东西来获得准确的像素
Bitmap image = EyeColorChangerActivity.getImageBitmap();
int displayedwidht = image.getWidth();
int displayedheight = image.getHeight();
x = x*((float)displayedwidht/mScreenWidth);
y = y*((float)displayedheight/mScreenHeight);
答案 0 :(得分:0)
在ImageView上设置OnTouchListener。
OnTouchListener的onTouch方法内部使用以下代码来获取所选的位图像素。
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
int x = (int) arg1.getX();
int y = (int)arg1.getY();
int pixel = mBitmap.getPixel(x, y);
// process new color for selected pixel.
....
//set new color to bitmap pixel
return false;
}