Ich verwende Glide einige Bilder asynchron in einige meiner ImageView
s zu laden, und ich weiß, dass es Bilder wie PNG
oder JPG
wie es SVG
verarbeiten kann verarbeiten kann.Verfügt Glide über eine Methode zum Laden von PNG und SVG?
Die Sache ist, soweit ich weiß, unterscheidet sich die Art, wie ich diese beiden Arten von Bildern lade. Wie:
Laden "normale" Bilder
Glide.with(mContext)
.load("URL")
.into(cardHolder.iv_card);
Loading 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);
Und wenn ich versuche, SVG mit dem ersten Verfahren zum Laden wird es nicht funktionieren. Wenn ich versuche, PNG oder JPG mit der zweiten Methode zu laden, wird es auch nicht funktionieren.
Gibt es eine generische Möglichkeit, beide Bildtypen mit Glide zu laden?
Der Server, von dem ich diese Bilder abrufe, sagt mir nicht den Bildtyp, bevor ich ihn herunterlade. Es ist ein REST-Server und die Ressource wird wie "http://foo.bar/resource"
abgerufen. Die einzige Möglichkeit, den Bildtyp zu kennen, ist das Lesen der HEAD-Antwort.
möchten Sie vielleicht klarstellen, was Sie mit * meinen, oder andersherum wird es nicht funktionieren *. – Blackbelt
Ich habe meine Frage bearbeitet. – Mauker