0

私はアプリに取り組んでおり、私のアクティビティの 1 つは、/data/ アプリケーション フォルダーに作成したフォルダー内のすべての画像を取得する画面です。すべての写真をグリッド形式でレイアウトし、クリックするとフルサイズに拡大したいと思います。もちろん、このギャラリーは、新しい画像がフォルダーに追加されたときに変更する必要があります。

簡単なことのように思えますが、これを実装するのに苦労しています.

ある種のグリッドビュー/リストアダプターの組み合わせになると思います。

この問題の最善の解決策は何ですか?

編集

これらのソリューションを調べました http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/ http://developer.android.com/guide/topics/ui/layout/gridview.html#例

しかし、私の混乱はこのようなコードです

private Integer[] mThumbIds = {
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7,
        R.drawable.sample_0, R.drawable.sample_1,
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7,
        R.drawable.sample_0, R.drawable.sample_1,
        R.drawable.sample_2, R.drawable.sample_3,
        R.drawable.sample_4, R.drawable.sample_5,
        R.drawable.sample_6, R.drawable.sample_7
};

アプリフォルダー内の画像の量が常に変化するため、これについてどうすればよいですか。そして、そもそもそのフォルダから画像をロードするにはどうすればよいですか

4

1 に答える 1

1

Caching Bitmaps in Android Developers サイトを見たことがありますか? 私はそれがあなたが望むものに似ていると思います。また、例のコードも提供します。

画像は動的に変更する必要があるため、SD カード内のパスに画像を保存することをお勧めします。次に、そのパスから画像パスを取得するには、次のようなものを使用します (そのディレクトリに画像しかないと仮定します)。

File imagesDir = new File(Environment.getExternalStorageDirectory(), "yourpath");
for (File f : yourDir.listFiles()) {
   if (f.isFile())
      String image_path = f.getPath();
      // make something with the name
}

また、sd のファイルからビットマップをロードするには、次のようにします。

Bitmap b = BitmapFactory.decodeFile("your_image_path");

メモリ効率のために、ビットマップのダウンスケール バージョンをロードすることを覚えておいてください。詳しくはこちらをご覧ください。

それが役に立てば幸い。

于 2012-07-25T12:44:00.103 に答える