diff options
Diffstat (limited to 'library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java')
-rw-r--r-- | library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java b/library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java index 254f30e6..0d343d0a 100644 --- a/library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java +++ b/library/src/main/java/com/bumptech/glide/load/resource/gif/GifFrameManager.java @@ -5,22 +5,24 @@ import android.graphics.Bitmap; import android.os.Handler; import android.os.Looper; import android.os.SystemClock; + import com.bumptech.glide.Glide; import com.bumptech.glide.gifdecoder.GifDecoder; +import com.bumptech.glide.load.NullResourceEncoder; import com.bumptech.glide.load.ResourceDecoder; import com.bumptech.glide.load.ResourceEncoder; -import com.bumptech.glide.load.SkipCache; import com.bumptech.glide.load.Transformation; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.engine.cache.MemorySizeCalculator; import com.bumptech.glide.load.model.NullEncoder; +import com.bumptech.glide.load.resource.FileToStreamDecoder; import com.bumptech.glide.load.resource.NullDecoder; import com.bumptech.glide.load.resource.bitmap.BitmapEncoder; import com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder; import com.bumptech.glide.request.GlideAnimation; import com.bumptech.glide.request.target.SimpleTarget; -import java.io.InputStream; +import java.io.File; class GifFrameManager { // 16ms per frame = 60fps @@ -28,7 +30,7 @@ class GifFrameManager { private final MemorySizeCalculator calculator; private final GifFrameModelLoader frameLoader; private final GifFrameResourceDecoder frameResourceDecoder; - private final ResourceDecoder<InputStream, Bitmap> cacheDecoder; + private final ResourceDecoder<File, Bitmap> cacheDecoder; private final GifDecoder decoder; private final Handler mainHandler; private final ResourceEncoder<Bitmap> encoder; @@ -67,13 +69,15 @@ class GifFrameManager { if (!decoder.isTransparent()) { // For non transparent gifs, we can beat the performance of our gif decoder for each frame by decoding jpegs // from disk. - cacheDecoder = new StreamBitmapDecoder(context); + + //TODO: + cacheDecoder = new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(context)); encoder = new BitmapEncoder(Bitmap.CompressFormat.JPEG, 70); } else { // For transparent gifs, we would have to encode as pngs which is actually slower than our gif decoder so we // avoid writing frames to the disk cache entirely. cacheDecoder = NullDecoder.get(); - encoder = SkipCache.get(); + encoder = NullResourceEncoder.get(); } } |