java–Glide有加载PNG和SVG的方法吗?

java–Glide有加载PNG和SVG的方法吗?,第1张

概述我正在使用Glide将一些图像异步加载到我的一些ImageView中,我知道它可以处理像PNG或JPG这样的图像,因为它可以处理SVG.事实是,据我所知,我加载这两种图像的方式不同.喜欢:加载“正常”图像Glide.with(mContext).load("URL").into(cardHolder.

我正在使用Glide将一些图像异步加载到我的一些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响应.

解决方法:

你可以使用Glide& AndroidSVG共同实现您的目标.

有来自GlIDe for SVG.Sample Example的样本

Setup RequestBuilder

requestBuilder = GlIDe.with(mActivity)    .using(GlIDe.buildStreamModelLoader(Uri.class, mActivity), inputStream.class)    .from(Uri.class)    .as(SVG.class)    .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)    .sourceEncoder(new StreamEncoder())    .cacheDecoder(new fileToStreamDecoder<SVG>(new SvgDecoder()))    .decoder(new SvgDecoder())    .placeholder(R.drawable.ic_facebook)    .error(R.drawable.ic_web)    .animate(androID.R.anim.fade_in)    .Listener(new SvgSoftwareLayerSetter<Uri>());

Use RequestBuilder with uri

Uri uri = Uri.parse("http://upload.wikimedia.org/wikipedia/commons/e/e8/Svg_example3.svg");requestBuilder    .diskCacheStrategy(diskCacheStrategy.soURCE)    // SVG cannot be serialized so it's not worth to cache it    .load(uri)    .into(mImageVIEw);

这样您就可以实现目标.我希望这是有帮助的.

总结

以上是内存溢出为你收集整理的java – Glide有加载PNG和SVG的方法吗?全部内容,希望文章能够帮你解决java – Glide有加载PNG和SVG的方法吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1102911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存