Sto usando Glide per caricare alcune immagini in modo asincrono in alcuni dei miei ImageView
s, e so che in grado di gestire le immagini come PNG
o JPG
come si può gestire SVG
.Glide ha un metodo per caricare sia PNG che SVG?
Il fatto è che, per quanto ne so, il modo in cui carico questi due tipi di immagine è diverso. Come:
Caricamento delle immagini "normali"
Glide.with(mContext)
.load("URL")
.into(cardHolder.iv_card);
Caricamento 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);
E se provo a caricare SVG con il primo metodo non funzionerà. Se provo a caricare PNG o JPG con il secondo metodo, non funzionerà neanche.
C'è un modo generico per caricare entrambi i tipi di immagine utilizzando Glide?
Il server su cui sto recuperando quelle immagini non mi dice il tipo di immagine prima di scaricarlo. È un server REST e la risorsa verrà recuperata in un modo come "http://foo.bar/resource"
. L'unico modo per conoscere il tipo di immagine è leggere la risposta HEAD.
si potrebbe voler chiarire cosa intendi con * o viceversa non funzionerà *. – Blackbelt
Ho modificato la mia domanda. – Mauker