frame animation 할때 out of memory


안녕하세요

frame animation를 사용하여 100장정도 되는 이미지를 애니메이션 할려고 합니다. 크기는 750 1334정도 됩니다.

out of memory가나오는데 다른 방법이 없을까요??

  • 2016년 10월 31일에 작성됨
    Android개발을 하고 있습니다만 모르는것이 많습니다. ^^;;

조회수 108


1 답변


좋아요
1
싫어요
채택취소하기

해당 크기의 이미지라면 한장에 대략 750 * 1334 * 4 = 4MB정도의 메모리를(ARGB_8888이라고 가정) 필요로 합니다. 프레임 애니메이션의 경우 모든 이미지를 메모리에 로드하는 방식이기 때문에 100장이라면 400MB 정도의 메모리를 필요로 하는데 이를 할당할 수 없기 때문에 Out of Memory가 발생하는 것으로 보입니다.

현재 애니메이션에 사용하는 이미지 수가 많아서 안드로이드에서 기본 제공하는 프레임 애니메이션이 아닌 다른 구현체를 사용하는게 좋을 것 같습니다.

위 라이브러리가 이미지를 순차적으로 메모리에 올리고, 해제하는 처리를 하는데요. 위 링크를 참고하셔서 코드를 수정해보시기 바랍니다.


  • 답변이 늦어서 죄송합니다. 친절한 설명 감사드립니다. 알려주신 라이브러리로 실험해보니 움직이기는 한데 자연스럽게 안되더라고요,,, 일단은 움직여서 좋긴한데 답변주셨는데 먹여달라기까지 하는거 같아서 송구스럽지만 방법이 없을까요?? 일단 알려주신 라이브러리를 이리저리 만져보곤 있습니다!     초보초보초밥입니다.   2016.11.7 10:53     
  • 이미지 크기(750x1334)와 애니메이션에 필요한 이미지 수 100장을 줄여보는 것이 도움이 되지 않을까 싶습니다. 모바일 환경은 자원이 제한되어 있다.라는 것을 전제로 개발을 해야 할 것 같고요. 또는 동영상 포맷으로 만들어서 재생하는 것도 대안이 될 수 있을 것 같습니다.    한로니로니   2016.11.7 13:01     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close