使用适用于Android的Glide,使用(本地)替代网址作为URL的好方法是什么?

树木无处不在

我正在使用Glide在我的Android应用程序中加载图像:

Glide.with(context).load(“ http://www.example.com/whatever/icon.png”).into(imageView);

我想在我的应用APK文件中捆绑一些图片,以确保即使设备处于离线状态,它们也始终可用。我仍然想使用Glide来受益于诸如调整大小的图像的内存缓存,在后台线程中加载和缩放等功能,并保持显示图像的界面一致。

我需要像这样加载的每个图像都是由URL指定的。如果有本地版本(本地文件名是通过使用URL的一部分生成的,例如在以下位置使用“ file:/// android_asset / bundled_images / whatever /”替换“ http://www.example.com/ ”) URL字符串),我想使用那个。如果不是,则需要从实际的URL下载图像。

这是一个例子:

我在http://www.example.com/whatever/icon.png上有一张图片,我将此图片打包在以下的apk中:

/assets/bundled_images/whatever/icon.png

规则如下:

如果图像文件存在于本地资产下,请使用该文件。如果本地资产下不存在该映像,请使用远程文件。

每当我请求将图像加载到图像视图中时,我都希望仅使用完整的URL(http://www.example.com/whatever/icon.png),并且我的图像加载器应能够自动首先检查本地副本。

我可以使用Glide的任何功能执行类似的操作吗?是的,我当然可以在调用glide之前对文件是否存在进行检查,但是看来Glide可以/应该为此具有一个足够普遍的用例。在后台进行文件存在检查也很好。

小鸟

您可以通过GlideModule以下描述的方式添加自定义来实现所需的灵活性Glide Configuration另外,您还需要实现适当的Glide加载程序,该加载程序将封装下载逻辑。在您的情况下,它可能类似于UriLoader

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么是适用于Linux的好的Prolog IDE?

什么是适用于Linux的好的Prolog IDE?

在本地C ++和Java程序之间进行通信的好的替代方法是什么?

适用于Android的本地图像缓存解决方案:Square Picasso,Universal Image Loader,Glide,Fresco?

处理网址参数类型的好方法是什么?

开发适用于Android和iOS的组件的正确方法是什么?

适用于Android AlarmManager的iOS替代品

平衡使用Redux的利弊的好方法是什么?

使用Firebase的Laravel FCM推送通知不适用于iOS,但适用于Android

重载的方法值适用于替代方法:

Android-使用适用于Android的Google Drive API

编译适用于Android的PDFium的正确选项是什么?

为什么在使用“ lvh.me”时,CORS适用于本地主机?

使用`encodeURIComponent`编码URL不适用于表单操作

使用NDK编译适用于Android的OpenALPR

深度缓冲区不适用于Android,但适用于Linux(使用Kivy)

除非使用[R],否则网址改写不适用于wordpress

适用于Android的ADAL-处理错误的正确方法是什么?

使用JavaScript的系统通知(适用于Android的Chrome)

使用适用于Android的AWS Mobile SDK检索具有特定访问权限的图像URL

在ajax中使用url.action的替代方法是什么

当我使用中文作为URL参数时,它不适用于python

使用 mPDF 生成的 PDF 不适用于 android

GotW #88 中的“它不适用于作为对象成员的引用”是什么意思?

Numpy:编写适用于一维和二维数组的函数的好方法是什么

适用于 Mac 的 Android Studio:使用原始彩色图像作为启动画面

为什么 Glide 不适用于 Firebase 存储

使用 Docker 共享数据库的好方法是什么?

为什么scrapy shell 不适用于此网址?