SDカードからサムネイル画像を取り出す getThumbnailメソッド

SDカードから画像を取り出す場合、利用する画像が元画像ではなくてよい場合やサムネイル画像の場合、縮小画像にする場合などは、元画像をそのまま取得すると遅くなります。

Android 2.1以降より組み込まれたgetThumbnailメソッドを使用すると、縮小された画像を得ることができます。

MediaStore.Images.Thumbnails.getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options)

画像は
MediaStore.Images.Media
MediaStore.Images.Thumbnails
の2種類で得ることができますが、MediaStore.Images.Thumbnailsはサムネイル画像がなければ取得することができません。
ところがgetThumbnailメソッドで取得すると、サムネイル画像がなければ生成して返してくれます。

ContentResolver cr = getContentResolver();
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor c = this.managedQuery(uri, null, null, null, null);

Bitmap bmp;
long id;
if(c.moveToFirst()){
  do{
    id = c.getLong(c.getColumnIndexOrThrow("_id"));
    bmp = MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MICRO_KIND, null);
    …………
    ……
    …………
  }while(c.moveToNext());
}
MINI_KIND512×384
MICRO_KIND96×96

関連記事

スポンサーリンク

clear_all_cache() 全てのテンプレートのキャッシュをクリアします

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る