Drawable image = Drawable.createFromPath(newImagepath);
defective_image.setBackgroundDrawable(image);
이미지는 문자열 인 newImagePath 변수에 저장됩니다. 위 코드는 outOfMemory Exception을 던집니다.SD 카드에서 이미지를 검색 할 수 없습니다.
또한 이미지를 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;
볼 수'을 매니페스트에? – Stan
<사용 권한 android : name = "android.permission.WRITE_EXTERNAL_STORAGE"/> 쓰기가 있습니다. 그게 적용되지 않나요? 그리고 그 이상을 File 객체로 읽어 들일 수 있습니다. Bitmap 또는 Drawable 객체 만 문제를 만들고 있습니다. –
Drawable 객체로 이미지를 가져 오니 OutOfMemory 예외가 발생했기 때문에 이미지 관련 문제로 생각했습니다. –