我使用Glide加載某些圖像異步到我的一些ImageView
S的,我知道它能夠處理圖像像PNG
或JPG
,因爲它可以處理SVG
。Glide是否有加載PNG和SVG的方法?
事情是,據我所知,我加載這兩種圖像的方式不同。像:
加載 「正常」 圖像
Glide.with(mContext)
.load("URL")
.into(cardHolder.iv_card);
加載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);
如果我嘗試用第一種方法加載SVG將無法正常工作。如果我嘗試使用第二種方法加載PNG或JPG,它也不起作用。
是否有一種通用的方式來使用Glide加載兩種圖像類型?
在我下載它之前,我從中獲取這些圖像的服務器不告訴我圖像類型。這是一個REST服務器,資源將以"http://foo.bar/resource"
的方式檢索。知道圖像類型的唯一方法是讀取HEAD響應。
你可能想弄清楚你的意思是*還是其他方式不行*。 – Blackbelt
我編輯了我的問題。 – Mauker