2010-11-27 17 views
0

私は、ユーザーがドラッグできる小さなイメージの束を持つキャンバスと、ユーザーがドラッグして新しいイメージを作成する「ボックス」を持つアプリケーションに取り組んでいますオブジェクトをドラッグするか、既存のイメージをドラッグして削除します。ドロウアブルがタッチされたときを検出する方法

ユーザーが領域や画面上の画像に触れたかどうかを検出する最適な方法は何ですか?最初に気になることは、明らかにタッチ座標を各オブジェクトの座標と比較することですが、それはちょっと面倒です。より良い、または組み込まれた方法はありますか?

おかげ

+0

あなたは 'ImageView'上でビュービュークラスを使用している理由はありますか? – schwiz

+0

今私は画像の代わりに図形を描くことになるだろうと思うので、私は座標を比較することに戻ります。誰も助けてくれてありがとう! – Matt

答えて

-1

Viewクラスは、ユーザーがビューをクリックしたときに検出するのに使用することができます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); 
    } 
}); 
0

それはあなたのインターフェイスがどのように複雑に依存しますが、あなたはonTouchEventをオーバーライドする場合は基本的に、あなたが参照した座標を取得すること。

すべてのオブジェクトを通過することなく、タッチされたものを見つけるには、スクリーンを多分8つのグリッドに分割し、すべてのオブジェクトがどのグリッドにあるかを知るなどの方法を簡単に見つけることができます画面がタッチされると、そのグリッド内にある可能性のあるオブジェクトを見つけることができるので、見えるアイテムが少なくなります。あなたが見ることができonTouchEventの使用方法の簡単な答えを

:アンドロイドに

http://androidforums.com/android-games/210019-touch-event-image-made-canvas.html

関連する問題