2011-01-18 21 views
2

私は、TableLayout内にTextViewsのグリッドを表示しています。ユーザーがTextViewをタップすると、他のセルがクリックされたときに別のセルに移動するImageViewを追加することによって、セルの背景を変更する必要があります。 これはAndroidでこれを行う最善の方法は何ですか?Android:TableLayoutでImageViewを表示および移動する方法

あらかじめご挨拶ありがとうございます。 c。

+1

私はあなたの最後の文章を本当に理解していませんでしたが、もう少し詳しく説明できますか? – C0deAttack

+0

ImageViewをTableLayoutの特定の位置に移動する必要があります...どうすればいいですか? – Cris

答えて

1

TextViewは、背景(画像)を持つことができます。だからそれをするのは簡単です textView.setBackgroundDrawable(R.drawable.myimage);

このメソッドを使用して画像を任意のcell-textViewに移動し、前の画像を別の画像に設定することも、何も設定しないこともできます。 textView.setBackgroundDrawable(null);

テーブル内でこの動きをアニメートすることはできません。各行が1つのビューであり、子ビューのアニメーションをその制約に制限する可能性があるからです。

0

は、

はあなたが

  1. 店舗画像が表示されますが、最初のセルから必要なすべての情報を(望むものを達成するために次の操作を行う必要があります...あなたがimplemenentを行いたいパズルのように聞こえますどのセルだった...)
  2. この情報はあまりにも
  3. は今、画像の表示設定を切り替える第二のセルストアで、あなたはその逆
  4. をセル2の画像にセル1の画像を設定する必要があると意味
+0

こんにちは、お返事ありがとうございます。問題は、私は12x8の細胞を持っているということです。私がよく理解すれば、すべての細胞に隠された画像を置くと言っています... 96画像はあまりにも多くのメモリで扱うことができます – Cris

+0

画像のサイズによって異なります。私はちょうどあなたが切り替える2つの画像を持っているときにあなたがすべきことについて考えました。切り替えたい画像が1つしかない場合は、同じ手順を実行する必要がありますが、「宛先」セルからの情報を保存する必要はありません。イメージのない96個のイメージビューを持つことは可能です(しかし少し遅いかもしれません)。パズルゲームなどをしたい場合は、SurfaceViewを使い、必要な場所に画像を描画することをお勧めします。 – WarrenFaith

0

これは 問題を解決する簡単なアルゴリズムです。

  1. を同じ順序として表に表示された画像IDの配列を維持します。
  2. タップの位置を2つ取得し、 の配列に対応するイメージIDをスワップし、 のようにすべてのイメージをテーブルの配列としてリロードします。

    これに従うとuが得られます。

関連する問題