package com.bumptech.glide.load.resource.gif; import com.bumptech.glide.Priority; import com.bumptech.glide.load.data.DataFetcher; import com.bumptech.glide.load.model.ModelLoader; import com.bumptech.glide.gifdecoder.GifDecoder; public class GifFrameModelLoader implements ModelLoader<GifDecoder, GifDecoder> { @Override public DataFetcher<GifDecoder> getResourceFetcher(GifDecoder model, int width, int height) { return new GifFrameDataFetcher(model); } @Override public String getId(GifDecoder model) { return model.getId() + model.getCurrentFrameIndex(); } private static class GifFrameDataFetcher implements DataFetcher<GifDecoder> { private GifDecoder decoder; public GifFrameDataFetcher(GifDecoder decoder) { this.decoder = decoder; } @Override public GifDecoder loadData(Priority priority) throws Exception { return decoder; } @Override public void cleanup() { } @Override public void cancel() { } } }