我在imageView 上使用 onTouch侦听器,使用它获得 x 和 y 的值。我的愿望是在其他函数中取回这些值,比如onCreate。我怎么能这样做?
代码:
private Bitmap repairImage(Bitmap bmp)
{
Color cc=Color.FromArgb(255, 251, 251, 251);
for (int x = 0; x < bmp.Width; x++)
{
for (int y = 0; y < bmp.Height; y++)
{
if (bmp.GetPixel(x, y).R>238)
{
bmp.SetPixel(x, y, Color.White);
}
else
{
bmp.SetPixel(x, y, Color.Black);
}
}
}
return bmp;
}
答案 0 :(得分:1)
你不能这样做因为onTouch是一个监听器..所以你不知道什么时候会被调用。因此,如果您在onCreate方法中使用这些变量而从不调用侦听器,则应用程序可能会崩溃。
但是你可以创建一个方法,将x和y作为参数,并像这样做你想做的任何事情:
imageView.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
//get x,y position
int x = (int) event.getX();
int y = (int) event.getY();
doSomething(x, y);
return true;
}
});
public void doSomething(int x, int y) {
Toast.makeText(this, "X: " + x + ", Y: " + y, Toast.LENGHT_LONG).show();
}