Android的触摸事件力关闭

问题描述:

我有一个2D阵列在屏幕上显示,并决定执行哪里会检测触摸位置和在其中找到所述触摸位于瓷砖和删除它,r表示更精确的方法中,更改int在地图[x] [y]处。 我现在有一个2D地图阵列充分的三分球15 15。 触摸的位置和这种方法,我创建,因为我无法找到一个方法来本轮下跌的数字,将计算阵列中的位置,并更改值:Android的触摸事件力关闭

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

请问您可以粘贴logcat吗? – Cristian 2010-12-08 15:37:17

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

indexX = MX >> 5;

速度不应该是一个问题,如果你只是做两个操作反正。

通过“强制关闭”你的意思是一个应用程序没有响应的对话框?

如果是别的东西,你可能有一个界限问题。

+0

嗯,这很奇怪。我提出的第一个解决方案是按照您的建议分解为整数,但它不起作用。我想这是因为我的手机插入了,并且模拟器正在运行或者其他类似的东西。我会再试一次,看看会发生什么。 – semajhan 2010-12-08 16:04:18