ギャラリーから画像を受け取る

インテントを使ってギャラリーを呼び出し、そこから画像ファイルを受け取るサンプル

呼び出す

リクエストコードを指定して ACTION_GET_CONTENT で呼び出すと
ギャラリー等のイメージを返却できるアプリを呼び出す事ができます。

private static final int REQUEST_GALLERY = 50;

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, REQUEST_GALLERY);

画像を受け取る

呼び出し時に指定したリクエストコードでかえってきたときに、UriからInputStreamが
取れますので、そこからBitmapを作成します。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == REQUEST_GALLERY && resultCode == RESULT_OK) {
     Uri uri = data.getData();
     InputStream in = getContentResolver().openInputStream(uri);
     Bitmap bitmap = BitmapFactory.decodeStream(in);
     in.close();
  }
}

このサンプルではUriで渡されたデータをそのままBitmapに展開していますが、
デカい画像だとOutOfMemoryが発生すると思われますので、実際に使う場合には、
BitmapFactory.OptionsでinSampleSizeを指定するなどした方がよろしいかと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です