2012-03-08 5 views
0

自分のカスタムビューを作成しようとしていますが、現在は特定のx座標とy座標の画像を描画し、場所。AndroidでのViewGroupとViewの使用とキャンバスを使用したボタンの作成

描画されるイメージの各インスタンスにボタンを作成したいと考えています。 1つの画像がクリックされた場合、どの画像が選択されるかに応じて異なるものが生じる。

どうすれば実装できますか?

それぞれの画像/ボタンの組み合わせごとに異なるビューを作成してから、onClickイベントを設定する必要がありますか?


see here(私はそれらを描くために取得する方法を考え出した私は、六角形(別のプレーヤーのための地形の異なる種類) を使用してマップを作成しようとしている もう少し明確にしてみましょう - どの地形が誰によって所有されているかを示す境界線を持ちます)

私はちょうどカスタムビュークラスを作成し、キャンバスを使って6角形を描画しました。しかし、私は六角形をどのようにボタンにすることができるかわからないので、どの六角形が選択されたのか、それが相手の場所にどのように反応するのかを区別することができます。

私は、Terrainという名前のViewGroupを、プレイヤーに属しているノード(六角形)を含むようにし、それを配置する必要がある六角形だけを描画するノードビューのグループを作成することを考えていました。

質問は、特定の六角形を押した場合、各ノードまたはビューグループ全体をボタンにすることができますか(またはonTouchを実行することができますか?

+0

画像の位置を手動で追跡し、画像境界内のクリックをチェックする。しかし、私はより自動化されたアプローチを探していると思います。 –

答えて

0

ありがとうございました!

私は何をする必要があるのか​​分かりました。 私はNodeViewクラスを持っていると私のGameActivityクラスで、私は相対的なレイアウトを使用して、私は物事がこれは私が私がそれらを必要なところ、私は物事を追加する助けとなりましたすべての

RelativeLayout rl = new RelativeLayout(this); 

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(95,95); 
    params.leftMargin = 10; 
    params.topMargin = 10; 


    params = new RelativeLayout.LayoutParams(95,95); 
    params.leftMargin = 10+95*x; 
    params.topMargin = 81+(71*y); 
    rl.addView(new NodeView (this,0,0,1,1), params); 

を配置たかった場所のレイアウトパラメータを設定していますx軸とy軸の両方の領域をスクロールする方法を見つけようとしています(ScrollViewを試しましたが、y軸をスクロールできるだけですが、私はそれを探しています)

1

私はよく理解した場合は、実行する必要があります。簡単なボタンです

  • 1つのテンプレートmy_pictures.xmlを。
  • 次に、作成したい画像の種類ごとにカスタムアダプタを作成します。これにより、必要なものに応じてボタンのバックグラウンド値を変更する必要があることを意味します。次に、notifyDataSetChanged()を実行します。新しいボタンでコンテナをリフレッシュします。
  • リスナーの場合、buttonImagesを作成するときにアクティビティまたはアダプタのいずれかにリスナーを追加するだけで、何が良いのか分かりません。
関連する問題