안드로이드 개발 질문/답변
(글 수 40,700)
안녕하세요
무지하게 고민하다가 해결이 안되서 여기에 올려 봅니다.
일단 카메라로 찍은 사진을 Uri 정보를 가지고 SDcard에 넣었습니다. 그리고 Uri 정보도 DB에 넣었구요
그 뒤로 Uri 값으로 사진을 가지고 와서 ImageView에 넣으려고 하는데 사진이 너무 커서 두번정도 호출하면 OutOfMemory가 발생을 하네요.
BitmapFactory에서 decodeFile로 호출을 하려고 Uri를 toString로 변경을 하면 정상적으로 사진을 불러 올수가 없고요
그래서 Option에 대한 걸 사용 못하네요..
다른 방법으로 하고 있는데 너무 답답해서요~
혹시 아시는 분은 확인좀 해주세요~~~~
2009.11.26 16:47:10
http://www.androidpub.com/31659 참고하세요. 질문전 검색먼저 해주세요. 그리고 공지사항( http://www.androidpub.com/1093 )은 확인하셨지요?
2009.11.27 11:04:37
Uri를 toString으로 처리했다면file://이 붙어 나왔을것 같다는 생각이 드네요. 그 부분을 제거하고 처리해야할것 같습니다. 공지사항은 첫번째 글인것 같아서 설명드린 것이니 크게 신경안쓰셔도 됩니다.
2009.12.01 11:16:45
(추천:
1 / 0)
무지하게 도움을 많이 주신 SSamDDak님 감사합니다... 알려주신 방식으로는 불가능하더라고요.. 알려주신 방식으로는 uri 값이 content가 아닌 http나 file일때만 적용이 될꺼 같아요.. 안해봐서 잘 모르겠지만.. ㅠㅠ
혼자 고민하다고 대충 얼렁뚱땅 해결했네요.. ㅋㅋㅋㅋ
자답이기는 하지만.. 그래도 도움이 되시라고 올려드립니다.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap bt;
try {
bt = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri), null, options);
i.setImageBitmap(bt);
} catch (Exception e) {
}
이렇게 하면 content로 시작하는 uri 정보에 연결되어 있는 사진을 넣을 수가 있더라고요.. 제가 content로 uri가 시작하는건 getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values) 를 사용해서 그런거구요~~~