私は、TableLayout内にTextViewsのグリッドを表示しています。ユーザーがTextViewをタップすると、他のセルがクリックされたときに別のセルに移動するImageViewを追加することによって、セルの背景を変更する必要があります。 これはAndroidでこれを行う最善の方法は何ですか?Android:TableLayoutでImageViewを表示および移動する方法
あらかじめご挨拶ありがとうございます。 c。
私は、TableLayout内にTextViewsのグリッドを表示しています。ユーザーがTextViewをタップすると、他のセルがクリックされたときに別のセルに移動するImageViewを追加することによって、セルの背景を変更する必要があります。 これはAndroidでこれを行う最善の方法は何ですか?Android:TableLayoutでImageViewを表示および移動する方法
あらかじめご挨拶ありがとうございます。 c。
TextViewは、背景(画像)を持つことができます。だからそれをするのは簡単です textView.setBackgroundDrawable(R.drawable.myimage);
このメソッドを使用して画像を任意のcell-textViewに移動し、前の画像を別の画像に設定することも、何も設定しないこともできます。 textView.setBackgroundDrawable(null);
テーブル内でこの動きをアニメートすることはできません。各行が1つのビューであり、子ビューのアニメーションをその制約に制限する可能性があるからです。
は、
はあなたが
こんにちは、お返事ありがとうございます。問題は、私は12x8の細胞を持っているということです。私がよく理解すれば、すべての細胞に隠された画像を置くと言っています... 96画像はあまりにも多くのメモリで扱うことができます – Cris
画像のサイズによって異なります。私はちょうどあなたが切り替える2つの画像を持っているときにあなたがすべきことについて考えました。切り替えたい画像が1つしかない場合は、同じ手順を実行する必要がありますが、「宛先」セルからの情報を保存する必要はありません。イメージのない96個のイメージビューを持つことは可能です(しかし少し遅いかもしれません)。パズルゲームなどをしたい場合は、SurfaceViewを使い、必要な場所に画像を描画することをお勧めします。 – WarrenFaith
これは 問題を解決する簡単なアルゴリズムです。
タップの位置を2つ取得し、 の配列に対応するイメージIDをスワップし、 のようにすべてのイメージをテーブルの配列としてリロードします。
これに従うとuが得られます。
私はあなたの最後の文章を本当に理解していませんでしたが、もう少し詳しく説明できますか? – C0deAttack
ImageViewをTableLayoutの特定の位置に移動する必要があります...どうすればいいですか? – Cris