我的Android项目中有2个矩形交集(一个比另一个大)。我使用了Rect.intersects(rect1,rect2)方法,它可以正常工作,但我应该知道它在哪里相交。例如,rect1.right与rect2.left等相交。有什么方法可以解决此问题?Example

我写了类似的东西来检测顶部或底部。但这给我2到5像素的错误。

if (Rect.intersects(rect2,rect1)){
    //rect1 is smaller one
   if (rect1.exactCenterY()<rect2.exactCenterY() - rect2.height()/2||
      rect1.exactCenterY()>rect.exactCenterY() + rect2.height()/2){
      //It is top or bottom
         doSomething();
   }else{
         doSomething();
   }
}


我希望你们能给我一些建议或其他解决方法。

最佳答案

如果您使用的是Rectangle类:

    int x = (int) rect1.intersection(rect2).getX();
    int y = (int) rect1.intersection(rect2).getY();


方法相交返回相交矩形。读出该矩形。希望这可以帮助。

10-06 14:34