最終更新:
moonlight_aska 2014年11月08日(土) 21:03:59履歴
画像のサムネイルを取得するには, MediaStore.Imagesクラスを利用する.
システム領域外の場合 MediaStore.Images.Media.EXTERNAL_CONTENT_URI (通常こちら)

- MainActivity.java
- getContentResolverメソッドで, ContentResolverのインスタンスを取得する.
- ContentResolver#queryメソッドで, 第1引数に画像の保存領域のURI, 第3引数にフィルタ条件, 第4引数にファイル名を指定して, 指定したファイルの情報を取得する.
システム領域外の場合 MediaStore.Images.Media.EXTERNAL_CONTENT_URI (通常こちら)
- Cursor#getColumnIndex及びgetLongメソッドで, IDを取得する.
- MediaStore.Images.Thumbnails#getThumbnailメソッドで, サムネイルを取得する.
package com.moonlight_aska.android.thumbnail;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.ImageView;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.graphics.Bitmap;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imageView = (ImageView)findViewById(R.id.imageview);
String fname = Environment.getExternalStorageDirectory().getPath() + "/sample/sample.jpg";
// ファイルIDの取得
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, // データの種類
null, // 項目(null 全項目)
MediaStore.Images.ImageColumns.DATA + " = ?", // フィルタ条件(null フィルタなし)
new String[]{fname}, // フィルタ用パラメータ
null // ソート
);
if (cursor.moveToFirst()) {
// サムネイルの取得
long id = cursor.getLong(cursor.getColumnIndex("_id"));
Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(resolver, id, MediaStore.Images.Thumbnails.MICRO_KIND, null);
imageView.setImageBitmap(thumbnail);
}
}
}
- 動作例

コメントをかく