2010-07-22 3 views
13

여기에서 Android에서 애니메이션 GIF를 재생하려고합니다 (Android: How do a display a large animated gif given a url? 참조). 그것은 부드럽지만 아무것도 아닙니다. Android 1.5에서 Movie.decodeStream()/decodeFile()은 null을 반환합니다. 안드로이드 1.6에서, 내가 가지고있는 GIF 파일들과 함께, 제로 지속 시간을 가진 제로 사이즈의 영화를 돌려줍니다.GIF를 프레임으로 분할

언급 한 질문은 GIF를 프레임으로 분할 한 다음 렌더링하는 것이 좋습니다. 내가 정확히 어떻게 그것을 성취합니까?

편집 : Windows에서 GNU giflib로 내 GIF 중 하나를 열어 보았습니다. 그것은 첫 프레임에서 막혔다. GIF 자체가 괜찮아요, 모든 브라우저 (안드로이드 저장) 잘 표시하고 애니메이션.

EDIT2 : giflib 4.1.4로 작업했습니다. 4.1.6에서 무엇이 망가 졌는지 확실하지 않지만 거기에 있습니다. 다음 단계 : NDK를 통해 Android 용 giflib을 빌드하고 Bitmap 클래스와 통합하십시오.

EDIT3 : giflib입니다. Bitmap.copyPixelsFromBuffer와 결합됩니다. 색상은 모두 현재 비스듬하지만 기본 디자인은 실행 가능해 보입니다.

답변

1

giflib 4.1.4 및 NDK. Android의 ARGBxxxx 형식 중 하나와 일치하도록 GIF의 팔레트 색상을 수동으로 확인한 다음 copyPixelsFromBuffer()을 통해 Bitmap 객체로 픽셀 배열을 전달해야합니다. 투명도 및/또는 애니메이션을 원할 경우 확장 블록을 통과하여 코드 0xf9가있는 블록을 찾아야합니다.

여기,지도와 함께, 내 코드를 공유 : http://rathertech.blogspot.com/2014/04/splitting-gif-into-frames-on-android.html

+0

당신이 혹시 샘플 코드가 있습니까? 그렇다면 게시하십시오. –

+0

다소 오래 걸립니다. 나는 이메일을 보낼 수 있었다. –

+0

어쩌면 pasteBin에 게시하거나 gitHub 또는 다른 곳에서 사용할 수 있습니까? –

관련 문제