Drawable image = Drawable.createFromPath(newImagepath);
defective_image.setBackgroundDrawable(image);
画像は、文字列である newImagePath 変数に格納されます。上記は outOfMemory Exception をスローします。
また、画像を Bitmap オブジェクトに取得しようとしました。
Bitmap bitmapImg= BitmapFactory.decodeFile(newImagepath);
上記の場合、bitmapImg は Null です。(例外なく)
ただし、ファイルとして取得された場合は成功です。この画像を RelativeLayout の背景にしたいので、これは私の目的を果たしません。
File imageFile = new File(newImagepath);
String imgPath = imageFile.getAbsolutePath();
imgPath は newImagePath と同じであり、パスが間違っていないと結論付けます。また、SDCard にイメージが存在することも確認しました。
この画像は、デバイスのカメラからキャプチャされました。このコードはエミュレータで正常に動作しています。デバイスでデバッグすると、上記の障害が検出されました。私も試しました:-
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;