안드로이드 개발 질문/답변
(글 수 45,052)
1. 제가 960 x 1020의 이미지 (약 1.5MB)를 2장 불러오는데 out of memory 가 발생하더군요.
혹시 안드로이드가 불러올수 있는 이미지의 최대사이즈나 용량이 정해져 있는지 아니면 제가 이미지 2장을 불러오기에는
너무 많은 메모리를 사용하고 있는지 알고싶습니다.
2. 크기가 너무 큰 이미지를 BitmapFactory.Options.inSampleSize를 이용해 줄여서 메모리에 올린다 해도
그 이미지를 화면에 뿌려줄때 다시 이미지를 늘리면 이미지의 해상도가 사이즈를 줄이는 바람에 많이 떨어져 있더군요..
원래의 해상도로 복구하는 방법은 없을까요..
혹시 안드로이드가 불러올수 있는 이미지의 최대사이즈나 용량이 정해져 있는지 아니면 제가 이미지 2장을 불러오기에는
너무 많은 메모리를 사용하고 있는지 알고싶습니다.
2. 크기가 너무 큰 이미지를 BitmapFactory.Options.inSampleSize를 이용해 줄여서 메모리에 올린다 해도
그 이미지를 화면에 뿌려줄때 다시 이미지를 늘리면 이미지의 해상도가 사이즈를 줄이는 바람에 많이 떨어져 있더군요..
원래의 해상도로 복구하는 방법은 없을까요..
2010.09.14 23:33:10
좋은 답변 감사합니다. 파일을 열지않고 크기를 얻는법은 알고있지만
그 얻어온 크기를 사용하기가 애매합니다. 1번에서 설명드렸던 960x1020 이미지는 총 18개의 프레임을 합쳐놓은 이미지라 한번에 불러
잘라서 쓰려고 했는데 out of memory로 인해 불러올수가 없었습니다. 그래서 2번대로 1/2로 줄여 화면에 보여줄때는 다시 원본의 2배로 늘려 보여주려고 했는데... 이미지가 줄었다 늘어나는 바람에 뭉개져 버리더군요.. 심하진 않지만 눈에 보일정도입니다.
가장 필요한건 역시 out of memory의 해결이겠군요.. 답변 감사합니다.
혹시 Memory Analyzer에 대한 가이드나 보는 방법(?) 에 대해 아시는지 궁금합니다. 메모리 누수에 대해 알고싶은데
도무지 Memory Analyzer을 설치해도 사용법과 보는법을 모르니... 막막하더군요
그 얻어온 크기를 사용하기가 애매합니다. 1번에서 설명드렸던 960x1020 이미지는 총 18개의 프레임을 합쳐놓은 이미지라 한번에 불러
잘라서 쓰려고 했는데 out of memory로 인해 불러올수가 없었습니다. 그래서 2번대로 1/2로 줄여 화면에 보여줄때는 다시 원본의 2배로 늘려 보여주려고 했는데... 이미지가 줄었다 늘어나는 바람에 뭉개져 버리더군요.. 심하진 않지만 눈에 보일정도입니다.
가장 필요한건 역시 out of memory의 해결이겠군요.. 답변 감사합니다.
혹시 Memory Analyzer에 대한 가이드나 보는 방법(?) 에 대해 아시는지 궁금합니다. 메모리 누수에 대해 알고싶은데
도무지 Memory Analyzer을 설치해도 사용법과 보는법을 모르니... 막막하더군요
2번의 경우는 애초에 inSampleSize를 너무 크게 그러니까 그림 자체를 너무 작게 로드하시는 탓입니다.
우선 "파일을 열지 않고 비트맵 크기를 가져오는 법"을 검색하시구요...
거기서 크기를 얻은 다음에 (가로세로가 나옵니다.)
내가 출력하고자 하는 크기로 나눠서 나온값을 inSampleSize로 잡고 실제로 로드하시면
보기에 아주 나쁜정도로 나오진 않을겁니다.