回答

0

嘗試使用Rect類的intersect方法:

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

+0

這個問題的答案是有效的.. – NullPointerException

+0

的問題也比你的不同是不能接受的。你試過這個嗎? – Simas

+0

嗨,謝謝,但是這會創建一個矩形,我的圖像不是矩形,是帶有圓形圖片的png,如雲彩或球。所以,這種碰撞策略給了我一個失敗,因爲當imageview的角落觸及另一個imageview的角落時,它會給我造成碰撞,但是imageviews中的位圖不會觸及...可以解決這個問題嗎? – NullPointerException

2

我會回答一般問題 - 找到當兩個視圖重疊時輸出


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

嗨,謝謝,但是這會創建一個矩形,我的圖像不是矩形,是帶有圓形圖片的png,如雲彩或球。所以,這種碰撞策略給了我一個失敗,因爲當imageview的角落觸及另一個imageview的角落時,它會給我造成碰撞,但是imageviews中的位圖不會觸及...可以解決這個問題嗎? – NullPointerException

+0

@ AndroidUser99你有沒有找到解決方案? – Usman

相關問題