描画可能なときに触れたときに検出する方法
質問
私は、ユーザーがドラッグできる小さな画像を備えたキャンバスを備えたアプリと、ユーザーがドラッグして新しい画像オブジェクトを作成したり、既存の画像をドラッグしたりする「ボックス」を備えたアプリに取り組んでいます。削除します。
ユーザーがエリアに触れたか、画面上の画像に触れたかどうかを検出する最良の方法は何ですか?最初に思い浮かぶのは、明らかにタッチ座標を各オブジェクトの座標と比較することですが、それは少し面倒なようです。より良いのか、それともやり方で構築されていますか?
ありがとう
解決
意見 Androidのクラスには、ユーザーがビューをクリックしたときに検出するために使用できるOnClickListenerがあります。 「画像」をビューとして(それらを呼ぶように)実装すると、それぞれにクリックリスナーを追加して、クリックされたビューを見つけるだけです。このようにリスナーを追加します:
// Get a reference to the view from xml (or if you
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// Do stuff with view (the View v that is passed is the View that was touched)
doStuff(v);
}
});
他のヒント
インターフェイスがどれほど複雑であるかに依存しますが、基本的にオーバーライドする場合 onTouchEvent
それはあなたが言及していた座標をあなたに得るでしょう。
すべてのオブジェクトを通過せずに触れられたものを見つけるために、画面をおそらく8つのグリッドに分割するなど、これを簡素化する方法を見つけることができ、すべてのオブジェクトがどのグリッドにあるかを知ることができます。触れると、そのグリッドにある可能性のあるオブジェクトを見つけることができるので、調べるアイテムが少なくなります。
使用方法に関する簡単な答え onTouchEvent
あなたは見ることができます:
http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html