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

Bitmap 관련 질문 드립니다.

0 추천
파일로 저장된 이미지를 불러 와 ImageView에 표시하는 경우에 대한 질문입니다.

메모리를 관리를 어떻게 해야하는지.. 어떤게 효율적인지

그런 쪽을 잘 몰라서 궁금증이 생겨 질문 드리니 답변 부탁 드립니다.

 

sdcard 에 저장된 이미지 파일을 가져와 이미지뷰에 표시를 하려고 하는데요,

ImageView.setScaleType 메서드를 통해 이미지를 조작하지 않고도

원하는 결과(CenterInside)를 얻을 수 있습니다.

 

두번쨰 생각한 방법은 불러올 때 이미지 사이즈가 일정 사이즈가 아니라면

비트맵 자체를 일정 비율로 줄여 저장한 뒤 불러오는 방법을 생각했구요.

이 방법은 많든적든 메모리 소비가 적을것 같다는 생각이 듭니다만

setScaleType 쪽은 잘 모르겠네요.

 

어느 쪽이 메모리 효율이 좋을 지 궁금합니다.

큰 이미지를 불러와서 setScaleType 을 지정해 보여지는 이미지 사이즈를 줄이는 방법과

불러올때 이미지 사이즈를 체크해 한번만 리사이징-저장 하는 과정을 거치는 방법 중에서요.

 

좀 뜬구름 잡는 질문같기도 하지만

메모리 사용량 체크하고 뭐 그런걸 잘 몰라서 질문 드립니다 ㅠㅠ
ire (3,900 포인트) 님이 2013년 7월 26일 질문

2개의 답변

0 추천
당연히 큰 이미지를 작게 불러오는게 메모리에 부담이 적습니다.

이미지 뷰에서 scale type 을 적용하든, background로 지정하든

메모리에 올라간 사이즈는 이미지 사이즈 그대로 입니다.

그래서 보여질 사이즈 대로 줄여서 보여주는게 메모리가 적게 먹습니다.
원조안드로이드 (58,190 포인트) 님이 2013년 7월 26일 답변
0 추천
좀 다른 얘기지만

 

메니페스트 xml 에서

 

<application>

android:largeHeap="true"

</application>

옵션을 주면 메모리를 더 크게 활용?할 수 있다고 하네요.

 

저도 캡쳐하느라 이미지 불러오고 했었는데 out of memory 가 떠서 이미지를 리사이즈해야되나 하다가

위에 옵션주니까 해결이 되었었습니다.
브루스웨인 (8,580 포인트) 님이 2013년 7월 26일 답변
...