2012-01-27 21 views
0

ゲーム開発の目的では、ビューを設定し、ボタンを拡張したり、クリック可能なものを実装するクラスを作成することは可能ですか? Imは画面上を移動するオブジェクトの画面のクリックを処理する最善の方法を見つけようとしていますImはキャンバス内のすべての描画を描画に描画しますが、オブジェクトをクリックできる個々のビットマップにします。Android - ビュー内で動的にクリック可能なオブジェクトを移動することは可能ですか?

私はすでに多くの仕事を捨てて、それを試してみる前に、画面のクリックを個別に処理できるビュー内でオブジェクトを動的に動かすことができるかどうかは分かりません。

+1

http://stackoverflow.com/questions/6662920/android-canvas-draw-circles-and-get-touch-eventsまたはhttp://praveenmax.wordpress.com/2011/02/02/painting-a -circle-using-touchlistener/ – nik431

+0

リンクありがとうございました:) –

答えて

2

ビューに(つまり、キャンバス上のすべてのオブジェクトを描く1)をOnTouchListenerを追加し、onTouch(View v, MotionEvent event)で、イベントの座標を取得:

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

次に、あなたのオブジェクトをループいるあなたこれらの座標がそのオブジェクトの現在の領域にあるかどうかを確認し、もしそうなら、それがクリックされたことを知っている。

+0

私は既にこれを実装していますが、何らかの理由で私のクリックが正しく約75%の時間で登録されていません。その特定のインスタンスのメモリ内にオブジェクトのListArrayがあり、デバイスが画面をクリックして登録した場合、リスト内の項目のいずれかの座標が一致するまで、listarray内のすべてのオブジェクトを反復処理するカスタムメソッドが呼び出されます画面をクリックします。私はこれが何度か働いていると言いましたが、通常画面上のオブジェクトは0〜5で動作しますが、時には40〜50以上のオブジェクトが画面上に表示され、 –

+0

その時、私はこの現在の方法を使用している画面上に多数のオブジェクトがあり、使用していると信頼性がなくなります。だから......私は私のビューで描画するために使用することができ、それが動作するかどうかを確認することができますビューのプロパティを持つオブジェクトを作成する方法を思いついてみようとしています。それぞれのオブジェクトがビューのようなものであれば、その時点で画面上で重なり合っている可能性がある80個以上のオブジェクトの配列を反復処理するプロセスを開始するのではなく、クリックのために参照することができます。 –

+1

私はそれがより効率的になると思いますが、その多くのオブジェクトで必要なのはソートされたリストなので、他のオブジェクトの上に描画されたオブジェクトはそのクリックの後ろにはなくクリックされます。 – Jave

関連する問題