読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

ContentProviderで保存した画像をContentProviderを使って取り出す

Android

概要

ContentProviderを使って画像を保存するとUriが帰ってくるので、それをContentProviderを使って取得する方法をまとめる

詳細

カメラなどを実装し、ギャラリーから見える位置に画像を保存するときによく以下メソッドが使われる

MediaStore.Images.Media.insertImage(getContext().getContentResolver(), bitmap, name, null);
第一引数 ContentResolver
第二引数 保存するbitmap
第三引数 保存する画像の名前…だが端末によって正常に動かずランダム名が付けられる
第四引数 保存する画像の説明
返り値 画像のUri

上の表の通り、名前をつけても端末によってはランダム名が付けられてしまうので返り値のUriで画像にアクセスするのが得策

取得するときは以下のように

Bitmap bmp = MediaStore.Images.Media.getBitmap(getContentResolver(), bmpUri);
第一引数 ContentResolver
第二引数 保存したbitmapのuri
返り値 保存したbitmap

というふうに取得する