frame animation 할때 out of memory

조회수 2287회

안녕하세요

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

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

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

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

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)