类com.bumptech.glide.load.resource.drawable.DrawableResource源码实例Demo

下面列出了怎么用com.bumptech.glide.load.resource.drawable.DrawableResource的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: APNG4Android   文件: ByteBufferAnimationDecoder.java
@Nullable
@Override
public Resource<Drawable> decode(@NonNull final ByteBuffer source, int width, int height, @NonNull Options options) throws IOException {
    Loader loader = new ByteBufferLoader() {
        @Override
        public ByteBuffer getByteBuffer() {
            source.position(0);
            return source;
        }
    };
    FrameAnimationDrawable drawable;
    if (WebPParser.isAWebP(new ByteBufferReader(source))) {
        drawable = new WebPDrawable(loader);
    } else if (APNGParser.isAPNG(new ByteBufferReader(source))) {
        drawable = new APNGDrawable(loader);
    } else if (GifParser.isGif(new ByteBufferReader(source))) {
        drawable = new GifDrawable(loader);
    } else {
        return null;
    }
    return new DrawableResource<Drawable>(drawable) {
        @NonNull
        @Override
        public Class<Drawable> getResourceClass() {
            return Drawable.class;
        }

        @Override
        public int getSize() {
            return source.limit();
        }

        @Override
        public void recycle() {
            ((FrameAnimationDrawable) drawable).stop();
        }
    };
}
 
源代码2 项目: glide-support   文件: ApplicationIconDecoder.java
@Override public Resource<Drawable> decode(ApplicationInfo source, int width, int height) throws IOException {
	Drawable icon = context.getPackageManager().getApplicationIcon(source);
	return new DrawableResource<Drawable>(icon) {
		@Override public int getSize() { // best effort
			if (drawable instanceof BitmapDrawable) {
				return Util.getBitmapByteSize(((BitmapDrawable)drawable).getBitmap());
			} else {
				return 1;
			}
		}
		@Override public void recycle() { /* not from our pool */ }
	};
}
 
源代码3 项目: glide-support   文件: DrawableResourceDecoder.java
@Override public Resource<Drawable> decode(Drawable source, int width, int height) throws IOException {
	return new DrawableResource<Drawable>(source) {
		@Override public int getSize() {
			return 1;
		}
		@Override public void recycle() {
		}
	};
}
 
 类所在包
 类方法
 同包方法