Java活用生活

ログイン

オンライン状況

オンラインユーザー1人
ログインユーザー0人
登録ユーザー2人

カウンタ

COUNTER335473

トピックス

トピックス >> 記事詳細
2020/12/08

サムネイル作成(「Androidプログラマの道 ~ Moonlight 明日香 ~」より抜粋)

固定リンク | by:aramaki
サムネイル作成
----------------------------------
MainActivity.java
getContentResolverメソッドで, ContentResolverのインスタンスを取得する.
ContentResolver#queryメソッドで, 第1引数に画像の保存領域のURI, 第3引数にフィルタ条件, 第4引数にファイル名を指定して, 指定したファイルの情報を取得する.
   システム領域の場合 MediaStore.Images.Media.INTERNAL_CONTENT_URI
   システム領域外の場合 MediaStore.Images.Media.EXTERNAL_CONTENT_URI   (通常こちら)
Cursor#getColumnIndex及びgetLongメソッドで, IDを取得する.
MediaStore.Images.Thumbnails#getThumbnailメソッドで, サムネイルを取得する.

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);
    }
  }
}
22:08 | 投票する | 投票数(0)
Copyright © Java活用生活 All Rights Reserved .