0

如果我用我的 5 个指尖触摸我的设备,我的应用程序会在触摸点周围画一个圆圈。现在,要识别我的左手和右手,我需要每个事件的 x,y 值。

为了得到我使用

int pointerCount = event.getPointerCount();

for (int i = 0; i < pointerCount; i++)
{
            int id = event.getPointerId(i);
            int x = (int) event.getX(i);
            int y = (int) event.getY(i);
}

现在要保存我的 x 和 y 值,我使用两个数组,上面的代码修改如下

private int[] xval,yval; 

 for (int i = 0; i < pointerCount; i++)
    {
            int id = event.getPointerId(i);
            int x = (int) event.getX(i);
            int y = (int) event.getY(i);
            xval[i] = x;
            yval[i] = y;

    }

每次我尝试保存在数组中时,应用程序都会崩溃。我的方法错了吗?任何帮助将不胜感激。我是android新手,如果这是一个愚蠢的疑问,请原谅。我需要将代码中使用的少量计算保存在一个数组中。没有任何作用!

4

1 回答 1

2

您尚未分配数组,因此您将值放置在未分配的内存中。

尝试:

int[] xval = new int[pointerCount];
于 2013-01-08T16:25:01.920 回答