Есть ли у Glide способ загрузки как PNG, так и SVG?
я используюскольжение загрузить несколько изображенийасинхронно в некоторые из моихImageView
с, и я знаю, что он может обрабатывать изображения, какPNG
или жеJPG
как он может справиться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.