在阵列中存储多点触控点

时间:2013-01-08 16:21:57

标签: android

如果我用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的新手,请原谅我,如果这是一个愚蠢的怀疑。我需要保存在一个数组中,以便在我的代码中使用很少的计算。什么都行不通!

1 个答案:

答案 0 :(得分:2)

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

尝试:

int[] xval = new int[pointerCount];