为什么 Glide 不会从资源 ID 加载图像到我的 ImageView?

Why won't Glide load an image from resource ID to my ImageView?

我已经获得了我的应用程序所需的所有图像,我正在尝试加快速度并使其如丝般顺滑,所以我一直在使用 Glide 加载图像并且它在其他领域也有效我的应用程序,但不在我的 viewpager 中。

在我的片段中,我正尝试像这样加载我的图像

Glide.with(this).load(R.drawable.my_drawable).into(myImageView);

没有任何事情发生或出现,我也没有从 Glide 收到异常或任何类型的错误消息。

查看 Debugging and Error Handling wiki 页面以启用日志记录。这应该会告诉您加载是否失败以及原因。

如果您没有看到错误日志,则可能是您的视图没有大小,因为它的大小为 0,或者因为它没有经过布局(可见性设置为 View.GONE 等).如果是这样,您可以通过使用任何有效的宽度和高度添加对 override() 的调用来测试检查(尝试 400, 400 或仅用于测试的东西)。

如果调用 override() 解决了问题,请查看您的 xml 并查看是否可以将视图更改为具有固定大小,或者至少最终以有效尺寸。如果一切都失败了,你总是可以用 Target.SIZE_ORIGINAL 作为宽度和高度来调用 override()

我知道这个问题早就结束了,但我通过使用占位符或错误图像找到了一个很好的解决方案。 所以你可以试试

Glide.with(<<MyActivity>>)
    .load("")
    .placeholder(<<myDrawable>>)
    .into(imageView);

不确定这是否是您想要的,但如果其他人也有同样的问题,至少这看起来工作最少。 :)

如果您使用的是 Vector 或 SVG,您的 Glide 版本可能不支持并无法加载。

生成一堆警告日志导致负载 url 为“”。如果您不想要警告日志,

试试这个:

int drawableIdentifier = activity.getResources().getIdentifier("my_drawable_image_name", "drawable", activity.getPackageName());
Glide.with(activity)
     .load(drawableIdentifier)
     .into(imageView);