我使用滑翔到一些图像加载异步到一些我的ImageViewS,我知道它能够处理图像像PNG或者JPG因为它可以处理SVG.
事实是,据我所知,我加载这两种图像的方式不同.喜欢:
加载"正常"图像
Glide.with(mContext)
.load("URL")
.into(cardHolder.iv_card);
Run Code Online (Sandbox Code Playgroud)
加载SVG
GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(mContext)
.using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class)
.from(Uri.class)
.as(SVG.class)
.transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
.sourceEncoder(new StreamEncoder())
.cacheDecoder(new FileToStreamDecoder<>(new SVGDecoder()))
.decoder(new SVGDecoder())
.listener(new SvgSoftwareLayerSetter<Uri>());
requestBuilder
.diskCacheStrategy(DiskCacheStrategy.NONE)
.load(Uri.parse("URL"))
.into(cardHolder.iv_card);
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用第一种方法加载SVG,它将无法工作.如果我尝试使用第二种方法加载PNG或JPG,它也无法正常工作.
是否有使用Glide加载两种图像类型的通用方法?
我从中获取这些图像的服务器在下载之前不会告诉我图像类型.它是一个REST服务器,资源将以类似的方式检索"http://foo.bar/resource".了解图像类型的唯一方法是读取HEAD响应.