Bitmap

API 1から使用可能 https://developer.android.com/reference/android/graphics/BitmapFactory

API28以上から使用可能 https://developer.android.com/reference/android/graphics/ImageDecoder

UriからBitmapをつくる #

private void uriToBitmap(Uri selectedFileUri) {
    try {
        ParcelFileDescriptor parcelFileDescriptor =
                getContentResolver().openFileDescriptor(selectedFileUri, "r");
        FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();
        Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);

        parcelFileDescriptor.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

SDカードから画像を読み込んでみる。 #

String  sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
Bitmap image = BitmapFactory.decodeFile(sdPath+"/Pictures/hoge.png");

Uri指定:MediaStoreを使用 #

ContentPrividerを通した時にUri指定となり、ファイルパスと少々違ったやり方が必要になる。

ContentResolver cr = getContentResolver();
Bitmap image = MediaStore.Images.Media.getBitmap( cr, uri );

Uri指定:BitmapFactoryを使用

InputStream  in = cr.openInputStream(uri);
Bitmap image = BitmapFactory.decodeStream(in);
in.close();

画像の読み込み #

https://developer.android.com/topic/performance/graphics/load-bitmap?hl=ja