【问题标题】:How set image into ImageView using Glide and a URI?如何使用 Glide 和 URI 将图像设置为 ImageView?
【发布时间】:2016-12-25 20:01:29
【问题描述】:

我正在尝试使用 Glide 库在 ImageView 中显示图像,该图像位于 res > drawable 文件夹中,并且它的名称是从数据库中检索的。如何使用 Uri 获取资源?redWifi.getImagen() 返回类似“imagename.png”的字符串。

我正在使用下一个代码,但没有显示图像。

Glide.with(detallesRedGuardadaActivity.this)
                .load(Uri.parse("file:///android_asset/" + redWifi.getImagen()))
                .asBitmap()
                .into(iconoRed);

我尝试使用.load(Uri.parse("file://android_asset/" + redWifi.getImagen())),但仍然无法正常工作。

【问题讨论】:

  • 您不需要库来设置资产中的图像。最简单的做法是将图像传输到drawable文件夹中,然后使用myImageView.setImageResource(R.drawable.image_from_drawable);
  • 我使用 glide 是因为此代码是 cursorAdapter 的一部分,并且每个 Item 都有一个从 db 获取的图像,使用 myImageview.setImageResource,由于项目数量过多而阻塞了 ui 线程。跨度>
  • 所以图像名称在数据库中,您希望每次都根据从数据库中获取的图像名称获取正确的图像,对吗?
  • 是的,没错,图片在 res>drawable>img1.png 中,需要一种正确的方式来使用 uri(或其他方式)获取对图像的引用。
  • 您是否尝试在 AsyncTask 中执行 setImageResource?我不确定这是不是正确的方法,但它在后台运行并且不会阻塞 UI 线程。

标签: android imageview android-glide


【解决方案1】:

URL file:///android_asset/ 表示您指向项目中的assets 文件夹。如果你不知道把这个目录放在哪里,用 Gradle here 看一下项目结构。

然后将您的图像放入该文件夹中,然后这应该可以工作:

Glide.with(context)
    .load(Uri.parse("file:///android_asset/"+fileName))
    .into(imageView);

【讨论】:

  • 谢谢!,我把我的照片移到 assets 文件夹中了。
  • 不客气。如果对你有帮助,可以采纳我的回答。
  • 我直接把这个传给 .load(/storage/emulated/0/1586779115967.jpg) 吗?
  • 我收到此错误E/GlideExecutor: Request threw uncaught throwable com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: file:/storage/emulated/0/Android/data/pakage_name/folder_name/image.jpg
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 2020-01-23
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多