2014-02-27 41 views
1

我正在嘗試製作一個「點」克隆,並且難以找出如何檢測用手指輕輕一觸的所有圖像。我相信我應該使用視圖組,但不知道該從哪裏去,任何其他幫助將不勝感激。我如何檢測在Android中已被觸摸的所有ImageView?

+0

如此觸摸或滑動?可以將不相交的動作分配給兩個事件 – mangusta

+1

它們清楚地表示來自滑動的碰撞檢測。對新用戶很好!用戶問這個問題,你需要告訴我們你已經嘗試了什麼。這不是一個自由職業者論壇,人們沒有得到報酬爲你編寫你的應用程序 –

回答

1

有很多方法可以做到這一點 - 這裏有一個方法。

創建一個RelativeLayout並給它一個id。在你的活動課上,找到這個RelativeLayout並在其上設置一個OnTouchListener

現在填充包含圖像視圖的2d數組,並將它們添加到您的RelativeLayout。

OnTouch回調方法中,您將有權訪問MotionEvent對象,您可以通過該對象訪問用於描述用戶手指在屏幕上移動時的手指位置的運動事件。將提供的x和y座標與2d數組中的圖像視圖的x和y位置進行比較,如果座標與圖像視圖的座標相匹配,則將選定的圖像視圖添加到ArrayList。

float x,y; //lets say these are populated with a point/average on your swipe path 
View element = ... ; //view representing one item in your array 
if (x > element.getX() && x < element.getX() + element.getWidth()) { 
    //Collides with x axis, check y axis now 
     //if that also colides, save this element in a set/list 
} 

當用戶從屏幕上擡起他/她的手指時,所有選定的圖像視圖將被存儲在ArrayList中。

+0

好的答案,我要添加一段代碼,不要冒犯,它只會幫助具有共同特點的新用戶問題 –