我正在屏幕上開發一些帶有一些圖像瀏覽的測試遊戲。如何檢測ImageView何時與另一個ImageView發生衝突?
用手指,我正在移動另一個imageview。
我想檢測手指移動的圖像視圖何時觸及另一個圖像視圖。
這是實現它的最好方法嗎?我找不到信息關於它的谷歌...
感謝
我正在屏幕上開發一些帶有一些圖像瀏覽的測試遊戲。如何檢測ImageView何時與另一個ImageView發生衝突?
用手指,我正在移動另一個imageview。
我想檢測手指移動的圖像視圖何時觸及另一個圖像視圖。
這是實現它的最好方法嗎?我找不到信息關於它的谷歌...
感謝
嘗試使用Rect
類的intersect
方法:
我會回答一般問題 - 找到當兩個視圖重疊時輸出:
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);
仔細檢查了我。祝你好運。
嗨,謝謝,但是這會創建一個矩形,我的圖像不是矩形,是帶有圓形圖片的png,如雲彩或球。所以,這種碰撞策略給了我一個失敗,因爲當imageview的角落觸及另一個imageview的角落時,它會給我造成碰撞,但是imageviews中的位圖不會觸及...可以解決這個問題嗎? – NullPointerException
@ AndroidUser99你有沒有找到解決方案? – Usman
這個問題的答案是有效的.. – NullPointerException
的問題也比你的不同是不能接受的。你試過這個嗎? – Simas
嗨,謝謝,但是這會創建一個矩形,我的圖像不是矩形,是帶有圓形圖片的png,如雲彩或球。所以,這種碰撞策略給了我一個失敗,因爲當imageview的角落觸及另一個imageview的角落時,它會給我造成碰撞,但是imageviews中的位圖不會觸及...可以解決這個問題嗎? – NullPointerException