0

私はAndroidとJavaを初めて使用します。ユーザーがSDカード上の画像から選択できる画像チューザーを起動するボタンを押すことができるアプリを構築しています。アプリは、2つのセルを持つグリッドビューで読み込まれます。1つのセルには、デフォルトの画像を持つ画像ビューがあります。もう1つはボタンです。画像を選択したら、グリッドビューの画像ビューに画像ビューを表示する必要があります。

画像のURIからデコードされている文字列パスを使用してビットマップを作成しています。次に、imageView.setImageBitmap(bitmap)を呼び出しています。これは何もしていません。ドローアブルフォルダ内の別の画像で画像リソースを更新しようとしましたが、まだ何もありません。アクティビティのグリッドのすぐ下に別の画像ビューを追加しましたが、その画像は正常に更新されているため、これはグリッドビュー(これが私の最初のグリッドビューです)に関係していると思います。

どんな助けでも大歓迎です。

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

4

1 に答える 1

2

GridViewセルが2つしかない場合は、おそらく正しい選択ではありません。LinearLayoutあなたはおそらくあなたが扱っている2つのアイテムを持っている単純なものでより簡単な時間を過ごすでしょう。

しかし、これがあなたがそれをする方法ですGridView

を拡張してアダプタを作成しますBaseAdapter。最も重要な方法はですgetView()が、それはあなたが最小限の仕事をしなければならない場所です。

が自分自身を再描画するときGridView、それは目に見える位置ごとに通過し、それぞれを呼び出しますgetView()。が提供されますView。ビューがの場合はnull、XMLリソースから新しいビューを膨らませ、データを入力して返します。ビューがそうでない場合はnull、既存のビューに適切なデータを入力します。ウィジェットは、ビューをリサイクルすることで効率的です。

必要なトリックは、画像を変更する場合notifyDataSetChanged()、再描画をトリガーするためにアダプターを呼び出す必要があることです(これは、適切なセルのビューに新しい画像を入力するときです)。

それは2分間のバージョンです。1、2年前のGoogle I / Oで、彼らはThe World ofListViewについて講演し、YouTubeに投稿しました。それは良い話であり、そこにあるほとんどすべてが同様に当てはまりGridViewます。

于 2012-05-02T21:42:05.970 に答える