GetX,GetY onTouch事件传递给onCreate方法

时间:2015-12-06 11:07:08

标签: android

我在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;
    }

1 个答案:

答案 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();
}