마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

외부메모리 (SD card) 로부터 이미지 가져오기

0 추천
안녕하세요, 초보개발자입니다~
제목대로 SD card 로부터 이미지를 가져오려고하는데 파일을 찾을 수 없다고하네요.
여기저기 찾아보니 다음과 같이 쓰면 된다고 하였으나!!!
으음.. 무지한 저의 머리로는 잘 모르겠네요 @_@ 일단 파일을 찾을 수 없다고 하긴하는데..
제 생각으로는 /mnd/sdcard 로 지정해서 써야되는거 같지만
검색해보니 아래처럼 잘들 쓰시더라구요 ㅎㅎㅎ
그러니까 제가 이상하게 한거 같은데.. 요놈을 어뜨케 확인해야하는건지 ~_~;;
방법은 맞는지 위치는 맞는지 가르침을 주시옵소서
 
★ 비트맵 팩토리는 문제가 많아서 다른 방법을 찾아보는중이에요 ★
 
 
 
 
초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 25일 질문

1개의 답변

+1 추천
 
채택된 답변
원하시는 답인지 모르겠는데요.. 전 이렇게 하니 잘 가져와지네요

 

String targetName = Environment.getExternalStorageDirectory() + File.separator + TEST_IMAGE_NAME;

Bitmap targetBitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.fromFile(target));
Gioskhan (12,060 포인트) 님이 2014년 2월 25일 답변
초보개발자ㅠ님이 2014년 2월 26일 채택됨
Gioskhan 님 답변 감사합니다~

그런데
Environment.getExternalStorageDirectory() + File.separator + TEST_IMAGE_NAME;
구문 설명 좀 부탁드려도 될까요
File.separator 이 녀석은 뭔지
TEST_IMAGE_NAME 이녀석은 확장자명까지 포함인지

Uri.fromFile(target)); 요것두요 +_+ 타겟이라고 되있는데
이녀석의 자료형은 뭔지 무슨 값을 담았는지

궁금합니당~ 알려주시어요
아이고 한줄이 빠졌네요..
File target = new File(targetName);
TEST_IMAGE_NAME 은 확장자 당연히 포함입니다
File.separator 는 "/" 랑 동일해요.. File 에 정의된 문자열 상수입니다
앞에 있는 Environment.getExternalStorageDirectory()  는 외장 메모리 경로구용
경로 + 파일명으로 비트맵을 가져오는군요!! 조으다조으다 ㅎㅎ
또, 궁금한게 있는데요 ^^;;
혹시 그걸로 여러 장의 이미지를 동시에 출력해보셨는지
비트맵팩토리로 사용해보셨는지, 비교했을 때 어느 것이 더 버퍼없이 안정적으로 동작하는지 알고 싶어요! 본문처럼 커서를 사용해서 가져오는 것과 비교하면 또 어떨까요?
바쁘실텐데 일부러 테스트해보지는마시고 경험이나 개인적으로 추측되는 점이 있으시면.. 알려주시어요!! (--)(__) 꾸벅
여러장은 안해봤구요
가져올 땐 따로 버퍼라기보다는 bitmap 변수들이 필요할텐데
사용하시고 (아마도 ImageView 에 쓰시겠죠..?) 나면 ImageView 변수에서 drawable을 추출해서 recycle 만 잘해주시면 메모리 걱정 안하셔두 될거에요
네, 친절한 답변 고맙습니다^^
파일명으로 검색해서 이미지 불러오는데 잘되네요!
여러 장 넣고 확인해봐야겠어요~
좋은 하루 보내세요
...