ギャラリーを開いて、選択した画像のパスを取得しています。次に、このパスからビットマップを作成し、bitmap.compress()関数を使用してこのビットマップを内部ストレージに保存します。ImageViewのsetImageUri()関数でこの保存されたビットマップのパスを指定することにより、この画像をImageViewに表示することは可能ですか?
Bitmap bmap = BitmapFactory.decodeFile(selectedImagePath);
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
bmap.compress(CompressFormat.PNG, 100, fos);
fos.close();
ここで、fileNameは、Stringに変換された整数(実際にはウィジェットのID)です。
この画像を次のようにImageViewにロードすることは可能でしょうか?
File internalFile = getFileStreamPath(fileName);
Uri internal = Uri.fromFile(internalFile);
imageView.setImageUri(internal);
setImageBitmap()関数を使用して画像を設定できることはわかっていますが、ファイルからビットマップを読み取り、それをParcelオブジェクトに渡す必要があります。これにより、画像が大きい場合にバインダートランザクションの失敗エラーが発生します。ImageViewで画像を表示するウィジェットを作っています。