检查两个图像视图是否相交的最有效方法是什么?

时间:2014-11-27 07:26:26

标签: android imageview intersection

我目前正在开发一个Android应用程序,我在屏幕中间有一个固定的图像视图,其他图像视图朝着它移动。我想实现一种方法,一旦其中一个运动图像接触到中间的图像就会通知我。这就是我现在正在使用的:

public void checkLoss() {
    if(spekList.size() > 0) {
        for(Spek spek : spekList) {
            final int[] position = new int[2];

            spek.getLocationInWindow(position);
            final Rect rect1 = new Rect(position[0], position[1], position[0] + spek.getWidth(),       position[1] + spek.getHeight());

            middle.getLocationInWindow(position);
            final Rect rect2 = new Rect(position[0], position[1],position[0] + middle.getWidth(), position[1] + middle.getHeight());

            if(Rect.intersects(rect1, rect2)) {
                if (health == 1) {
                    lost = true;
                    gameOver();
                    break;
                } else {
                    health--;
                    setMiddleImage(health);
                    removeSpek(spek);
                    break;
                }
            }
        }
    }
}

这有效,但我意识到它并不那么准确。在我收到通知之前,运动图像通常会一直到达固定图像的中间,而我希望一旦边界触摸就会发生。是否有某种类型的库提供此功能?如果有的话,实施它有多容易?

感谢您的支持:)

0 个答案:

没有答案