Download - AndroidでGIFアニメ 2014.08.06 Kyoto.LT
Android !GIF
!
!Shota Moriwaki!!
!!
GIFWhat is GIF?
GIF!Graphics Interchange Format
CompuServe
GIF87a GIF89a 2 GIF GIF89a 256 LZW
GIF GIF Header GIF !
Image Block
Graphic Control Extension
Application Extension GIF
Comment Extension
Plain Text Extension
Trailer
GIF87a GIF Header Image Block
Trailer
GIF89a GIF Header
Graphic Control Extension Image Block
Trailer
GIF GIF Header
Application Extension Graphic Control Extension
Image Block Graphic Control Extension
Image Block
Graphic Control Extension Image Block
Trailer
・ ・ ・
Android !How to show animated gif on android device?
!Try to decode animated gif like other file
Bitmap !!BitmapFactory.decodeByteArray(byte[]data, int offset, int length) BitmapFactory.decodeFile(String pathName)!BitmapFactory.decodeResource(Resources res, int id) BitmapFactory.decodeStream(InputStream is) !
PNG JPG GIF!!
“A bitmap image. Android supports bitmap files in a three formats: .png (preferred), .jpg (acceptable), .gif (discouraged).’’ http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap
GIF !
WebViewTry to use android.webkit.WebView
!!
MovieTry to use android.graphics.Movie
!!
GIFTry to decode animated gif file
android-gifview!https://code.google.com/p/android-gifview/ GifDecoder.java!GIF Bitmap
GifView!Bitmap !
!GifDecoder.java Google+ !
!!
GIF
GifDecoder.java !Try to fix GifDecoder.java
1. GIF 2. GifHeader 3. Application Extension 4. Graphic Control Extension !
5. ImageBlock !
Bitmap !
6. 4 5
GifDecoder.java
1. GIF 2. GifHeader 3. Application Extension 4. Graphic Control Extension !
5. ImageBlock !
Bitmap !
6. 4 5
GifDecoder.java
…
1. GIF 2. GifHeader 3. Application Extension 4. Graphic Control Extension !
5. ImageBlock !
Bitmap !
6. 4 5
GifDecoder.java
Bitmap
GIF !GIF
GIF89a GIF Header
Graphic Control Extension Image Block
Trailer
GIF GIF Header
Application Extension Graphic Control Extension
Image Block Graphic Control Extension
Image Block Trailer
GIF Header Graphic Control Extension
Image Block Trailer
Bitmap
1. GIF 2. GifHeader 3. Graphic Control Extension !
4. ImageBlock GifHeader Graphic Control Extension!
5. 4 BitmapFactory Bitmap 6. 3 4 5
GifImageDecoder.java
Android OS 4.1 JellyBean !GIF Bitmap
BitmapFactory … GIF !
!GIF
!…
Android OS 4.4 KitKat !GIF !BitmapFactory https://code.google.com/p/android/issues/detail?id=62016
GIF…
!
https://github.com/yysk/GifImageDecoderSample