[英]Using Glide and a String Array to display images in Resource
目前我有一个使用RecyclerView
的应用程序,当单击其中一个项目时,它会使用 Glide 加载图像。 这些都托管在网络服务器上,所有项目的 URL 都存储在字符串数组中。 适配器确定 position 与存储在“ imageGallery
”中的内容相匹配,下载图像,然后将其加载到应用程序中。 一旦它第一次下载,它就会被存储,并且每次按下该项目时它都会重复使用,但是您按下的每个新项目都必须定期下载。
这是对 URL 进行排序的字符串数组的示例
<string-array name="gallery">
<item>http://britishsheepbreeds.co.uk/app/gallery/badger_welsh_mountain.jpg</item>
<item>http://britishsheepbreeds.co.uk/app/gallery/balwen.jpg</item>
<item>http://britishsheepbreeds.co.uk/app/gallery/beltex.jpg</item>
</string-array>
在与一些人进行 Beta 版测试后,人们认为在单击项目之前让图像在线并且不加载到应用程序中不是一个好方法,所以我在考虑两个选项。
选项 1. 第一次加载应用程序时下载所有图像,然后使用存储中的缓存/图像在将来加载。
选项 2. 将所有图像都保存在 drawable 或 mipmap(或应用程序中的另一个目录)中,以便他们从应用程序存储中调用它们,而不是依赖互联网。
我试图通过修改我的字符串来做到这一点,但这不起作用
我更改了 String-Array 中的一项以进行测试,并添加了一个 toast 以确保它正在调用正确的信息,但它仍然没有加载。
<string-array name="gallery">
<item>http://britishsheepbreeds.co.uk/app/gallery/badger_welsh_mountain.jpg</item>
<item>http://britishsheepbreeds.co.uk/app/gallery/balwen.jpg</item>
<item>R.mipmap.beltex</item>
</string-array>
滑行代码是:
Glide.with(this)
.asBitmap()
.load(imageGallery)
.into(gallery);
资源文件夹:
Toast 消息显示它可以从字符串数组中提取信息,但是引用似乎不起作用。
如果我用.load(imageGallery)
替换 .load(imageGallery) , .load(R.mipmap.beltex)
为所有项目加载图像。
欢迎任何帮助。 我究竟做错了什么? 它几乎就像从字符串中引用不起作用一样。 我是否必须解析字符串以使其作为参考字段工作。
您需要从名称中获取该图像的 id 才能加载它。
将数组项从R.mipmap.beltex替换为bettex并同时从名称中设置图像获取 id
int resId = getResources().getIdentifier(imageGallery, "mipmap",getPackageName());
Glide.with(this).load(resId).into(gallery);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.