3

私は写真の2000以上の低解像度のサムネイルを持っているsqliteデータベースを持っています。データベース自体のサイズは100MBを超えています。このプロジェクトでは、ファイルパスではなくデータベースに写真を配置する必要があります。

これは私がやりたいことであり、画像を扱うのはこれが初めてなので、助けが必要です。アプリUIに水平方向のGalleryViewがあり、このデータベースから動的に取得した画像を入力します。これらの画像がバックグラウンドでギャラリービューに遅延ロードされてもかまいません。ImageAdapterを使用して画像をUI要素に動的にバインドする必要があることをどこかで読みました。これがどのように行われるかを理解する必要があります。BaseAdapterクラスを使用したことはありません。

ありがとう、AB

4

2 に答える 2

1

実際、アダプタをサブクラス化して、データベースから画像を引き出し、ビットマップまたはドローアブルに変換してから、画像をImageViewに設定し、ギャラリーに追加します。

ただし、始める前に、今すぐギャラリーの使用をやめることをお勧めします。Galleryには、アダプタがビューを適切にリサイクルできないというバグがあります。これは、ユーザーがギャラリーをスクロールしている間、新しい画像が画面に入るたびに、新しいImageViewオブジェクトが作成されることを意味します。これは無駄であり、ガベージコレクションが常に実行されているため、ギャラリーがスクロールされている間、パフォーマンスが著しく低下します。

アダプタの使用を開始するには、SimpleCursorAdapterをチェックして、SimpleCursorAdapterを拡張する方法の例をオンラインで検索してください。getViewメソッド内で、画像をデータベースから引き出し、ユーザーに表示するビューに設定します。

于 2011-10-12T19:57:07.010 に答える
0

カスタムアダプタとSDカード上の画像の場所を保持する文字列配列を使用してこれを行うことができました。ただし、これをすべて行う前に、データベースからイメージをプルして、SDカードの場所にコピーする必要があります。これらの画像をコピーするだけで5〜7秒かかるため、この手順を回避するように取り組んでいます。

于 2011-10-17T21:42:30.090 に答える