2012-01-27 52 views
0

爲了說遊戲開發的目的,是否可以設置視圖並創建一個擴展按鈕或實現可點擊或類的類。我試圖找出處理屏幕上移動對象的屏幕點擊的最佳方法,現在我在一個畫布中繪製所有內容,畫布中的內容被繪製到一個視圖,但我不能使單個位圖表示對象可點擊。Android - 是否有可能在視圖中動態移動可單擊對象

因此,在我拋出了大量工作並嘗試它之後,是否有人知道它是否可以在可獨立處理屏幕點擊的視圖中動態移動對象。

+1

http://stackoverflow.com/questions/6662920/android-canvas-draw-circles-and-get-touch-events或http://praveenmax.wordpress.com/2011/02/02/painting-a -ircle-using-touchlistener/ – nik431 2012-01-27 10:19:24

+0

感謝您的鏈接:) – 2012-01-27 18:28:55

回答

2

添加OnTouchListener你的觀點(即繪製在畫布上的所有對象的一個​​),並在onTouch(View v, MotionEvent event),得到事件的座標:

int x = event.getX(); 
int y = event.getY(); 

然後通過你的對象循環,你繪製並查看這些座標是否在該對象的當前區域上,如果是,則知道它已被點擊。

+0

我已經實現了這一點,但由於某種原因,我的點擊沒有正確註冊約75%的時間。我爲該特定實例在內存中有一個ListArray對象,如果設備註冊了一個屏幕點擊,然後觸發一個自定義方法,該方法遍歷listarray中的所有對象,直到列表中的某個項目的座標與屏幕點擊。就像我說的那樣,這個工作有些時候,通常適用於0-5個屏幕對象,但有時我會在屏幕上有40或50個以上的對象,其中一些實際上是對方的前面。 – 2012-01-27 18:28:32

+0

它當時我有大量的屏幕上的對象,這種當前使用的方法使用分解並變得不可靠。所以.....我試圖想出一種方法來使一個對象具有視圖的屬性,我可以在我的視圖中繪製,我不知道這是否會工作。如果每個對象都像一個視圖,我可以讓它引用它自己的點擊,而不是開始一個迭代通過最多可能有80個或更多對象的數組的過程,其中一些可能在屏幕上彼此重疊。 – 2012-01-27 18:32:14

+1

我認爲現在做的效率會更高,但是對於那些很多對象需要的是一個排序好的列表,以便在其他對象上方繪製的對象可以註冊點擊,而不是其後面的東西。 – Jave 2012-01-27 19:04:10

相關問題