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

갤러리앱, 구글지도, 지하철지도 같은 고해상도 이미지 처리방식 OOMㅠㅠㅠㅠㅠ

0 추천
지금 OutOfMemory의 늪에서 빠져나오지 못하고 있는 1인입니다.

 

지금 제가 만들고 있는 앱은 720 *1280 사이즈의 여러 png 이미지를

특정한 상황이 되었을 때 각 상황마다 맞는 이미지를 뿌리고

그 이미지위에 TextView 마커를 올리는 앱입니다  (이미지는 핀치투줌 확대축소가 가능합니다)

예를 들면 지하철앱에서

전체노선도(고해상도이미지) 위에 역(TextView마커)

을 하나 터치했을 때 역정보가 나오는 앱이라고 생각하시면 됩니다.

근데!!

한 두장은 상관이 없지만 기종에 따라서 세번 혹은 네번.. 다른 이미지를 뿌려주었을 떄

OOM이 나더군요ㅜㅜ

 

지금 이미지를 뿌려주는 방식은

커스텀이미지뷰에 그림의 Resource ID를 주어서 그리게 하는 기본적인 방식이구요..

비트맵 디코드 /  createBitmap 등은 사용하지 않고 있습니다

 

찾아보니 비트맵팩토리 옵션으로 해상도를 낮추어서 비트맵을 로드하는 방법을 사용하곤 하는데

제가 만드는 앱에서 확대를 하였을 때 이미지가 깨지면 안되서 어떻게 해야되는지 참 답답합니다.

 

구글지도나 여타 지도앱 같은 경우에는  확대가 되거나 축소가 될 떄

약간 다른 이미지들이 나오던데...

현재 배율에 따라서 그림을 다시그리는건지...

어떻게 하는 건지 ㅠㅠㅠ
postpo22 (250 포인트) 님이 2015년 10월 21일 질문

1개의 답변

0 추천
자답입니다

이미지를 아예 크게하고 (ex 3000 * 4000)

BitmapFactory.Options
옵션을 사용하니까 볼만한 수준으로 되는군요???
 아직 샘플로사용한 이미지가 3장뿐이라
 더 추가되었을 떄 어쩔진 모르겠다만... 일단은 괜찮네요

참고...가 아니라 완전 따라한 사이트
http://developer.xamarin.com/recipes/android/resources/general/load_large_bitmaps_efficiently/
제가 안드로이드 스튜디오가 아니라
자마린으로 개발하고 있어서.......
postpo22 (250 포인트) 님이 2015년 10월 22일 답변
...