package com.bumptech.glide.load.resource.gif; import com.bumptech.glide.Priority; import com.bumptech.glide.gifdecoder.GifDecoder; import com.bumptech.glide.load.data.DataFetcher; import com.bumptech.glide.load.model.ModelLoader; public class GifFrameModelLoader implements ModelLoader { @Override public DataFetcher getResourceFetcher(GifDecoder model, int width, int height) { return new GifFrameDataFetcher(model); } private static class GifFrameDataFetcher implements DataFetcher { 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 String getId() { return decoder.getId() + decoder.getCurrentFrameIndex(); } @Override public void cancel() { } } }