[ 안드로이드 ] 이미지 관련 - 절대경로를 얻었는데, imgView에 씌워지지가 않습니다...
조회수 9146회
안녕하세요, 안드로이드 공부중인 초보입니다.
특정버튼을 클릭하면 "ACTION_PICK"을 통해서 갤러리 화면을 띄우고, 이미지를 선택해서 원하는 이미지뷰에 선택한 이미지를 띄우려고 헀는데요,,
원래 Bitmap image_bitmap = MediaStore.Images.Media .getBitmap(getContentResolver(), data.getData());
(이걸로 받아온 비트맵 값) content://media/external/images/media/10082
이걸로 이미지를 그리면, 선택한이미지가 이미지 뷰에 잘 그려졌습니다.
(절대경로를 구하고 그걸 이미지 뷰에 씌우는 방법을 하려는 이유는, 이미지 절대경로를 String으로 저장했다가 다시 앱을 킬때도 저장된 경로로 이미지를 띄우려 해서 입니다. 이 위의 컨텍스트 경로를 저장했다가 리스트 뷰로 이미지를 그리려 하니까 실패하더라구요..)
그래서 이미지의 절대 경로를 구해서 그리려고 시도해봤습니다 (기종 : 갤럭시s6 - 내부 갤러리에 저장된 이미지)
Uri selectedImg_uri;
this.selectedImg_uri = Uri.parse(selectedImg_path);
현재 selectedImg_uri 이거 값이 /storage/emulated/0/Download/13659028_1035067996585531_2022603899746916935_n.jpg 이거로 되어있습니다.
시도 방법1)
//그리기
image_selected.setImageURI(selectedImg_uri);
시도방법2)
File img_pathFile = new File(String.valueOf(selectedImg_uri));
Bitmap bm_imgPath;
BitmapFactory.Options bm_options;
try{
bm_imgPath=BitmapFactory.decodeFile(img_pathFile.getAbsolutePath());
System.out.println("Try(aaaa)");
} catch (OutOfMemoryError e){
bm_options = new BitmapFactory.Options();
bm_options.inSampleSize = 2;
bm_imgPath = BitmapFactory.decodeFile(img_pathFile.getAbsolutePath(), bm_options);
System.out.println("OutOfMemoryError(aaaa)");
} catch (Exception e){
bm_imgPath = null;
System.out.println("Exception(aaaa)");
}
System.out.println("이거 널???(aaaa):"+String.valueOf(bm_imgPath)); (→네,, 이게 null이 뜹니다..);
System.out.println("bm_imgPath(aaaa):"+String.valueOf(img_pathFile.getAbsolutePath()));
//그리기 image_selected.setImageBitmap(bm_imgPath);
위의 두방법 다 실행이 되지 않아서요, 제가 잘못한 부분이 보이시면 지적 부탁드리겠습니다!
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
제 환경에서는 방법1로 잘 나오는 것을 확인했습니다. 해당 파일이 존재하는지 혹은 다른 코드에 문제가 없는지 확인해보세요.
제가 테스트 한 이미지의 절대 경로를 이용해 imageView에 설정하는 코드입니다.
String path = "/storage/emulated/0/Download/PS16011800314.jpg" imageView.setImageURI(Uri.parse(path));
OS가 마시멜로라면 READ_EXTERNAL_STORAGE에 대한 권한 동의가 이루어졌는지 확인하시기 바랍니다. 권한 처리는 다음 링크를 확인하세요.
-
(•́ ✖ •̀)
알 수 없는 사용자
- 아! 감사합니다, 안드로이드 4.4.2 에서 해보니 방법1 2랑 다른방법도 다 잘 되는데, 마시멜로 이슈 인거같아요, 권한동의 확인해서 다시 해보겠습니다. 감사합니다! 알 수 없는 사용자 2016.7.19 11:10
-
댓글 입력