Android触摸事件强制关闭

时间:2010-12-08 15:30:10

标签: java android

我在屏幕上显示了一个二维数组并决定实现一种方法,它会检测触摸位置并找到触摸所在的图块并将其删除,更确切地说,更改地图上的int [x ] [Y]。 我目前有一个2d的地图数组,满15秒15。 触摸一个位置,我创建的这个方法,因为我找不到一种方法来舍入数字,会计算数组中的位置并更改值:

public boolean onTouchEvent(MotionEvent event) {

    mX = (int) event.getX();
    mY = (int) event.getY();
    calculate();
    return true;
}

public void calculate() {

    indexX = 0;
    indexY = 0;
    for (int n = 32; n < mX; n += 32) {
        indexX++;
    }
    for (int n = 32; n < mY; n += 32) {
        indexY++;
    }
    map[indexY][indexX] = 1;
}

如果我开始捣碎屏幕或拖动我的手指,它会强制关闭,但如果我慢慢地逐个触摸一个位置它就可以正常工作。 我假设计算方法不应该在触摸事件方法中,但仍然不太确定。

1 个答案:

答案 0 :(得分:0)

没有必要这个for循环。除以两个整数应该给出整数结果。由于你想要除以2的幂,你也可以使用算术移位算子。 (有人可能会认为编译器会选择哪个更快,无论你编码什么,但负值的舍入行为是不同的)

indexX = mX&gt;&gt; 5;

如果你只做两次操作,速度应该不是问题。

“强制关闭”是指应用程序没有响应对话框吗?

如果是其他内容,则可能存在边界问题。