如何检测ImageView何时与另一个ImageView发生冲突?

时间:2014-07-06 21:14:27

标签: android android-layout imageview collision-detection collision

我正在开发一个带有一些图像视图的测试游戏。

用手指,我正在移动另一个图像视图。

我想检测手指移动的图像视图何时触及另一个图像视图。

¿哪个是实现它的最好方法?我在google上找不到关于它的信息......

由于

2 个答案:

答案 0 :(得分:3)

我会回答一般性问题 - 找出两个视图重叠的时间


private boolean viewsOverlap(View v1, View v2) {
    int[] v1_coords = new int[2];
    v1.getLocationOnScreen(v1_coords);
    int v1_w = v1.getWidth();
    int v1_h = v1.getHeight();
    Rect v1_rect = new Rect(v1_coords[0], v1_coords[1], v1_coords[0] + v1_w, v1_coords[1] + v1_h);

    int[] v2_coords = new int[2];
    v2.getLocationOnScreen(v1_coords);
    int v2_w = v2.getWidth();
    int v2_h = v2.getHeight();
    Rect v2_rect = new Rect(v2_coords[0], v2_coords[1], v2_coords[0] + v2_w, v2_coords[1] + v2_h);

    return v1_rect.intersect(v2_rect) || v1_rect.contains(v2_rect) || v2_rect.contains(v1_rect);
}


这些天我的三角学有点摇晃,所以我不确定这部分:

OVERLAP ==  v1_rect.intersect(v2_rect) || v1_rect.contains(v2_rect) || v2_rect.contains(v1_rect);


仔细检查我。祝你好运。


答案 1 :(得分:0)

尝试使用课程intersect的{​​{1}}方法:

https://stackoverflow.com/a/19086884/3249477