在加载图像之间滑动显示 ImageView 背景

Glide showing ImageView background in between loading images

我有一个简单的用例。我有一个本地图像 uri (content://path),我将其加载到 ImageView - 这是第 1 步。按下按钮后,图像将替换为来自我们服务器的图像 - 这是第 2 步。

我的代码非常简单 - 或者至少,即使我将代码简化为以下内容,我也可以重现该问题:

Glide.with(imageHolder.getContext()).load(url).into(imageHolder);

第一次,这是用本地 uri (content://path) 调用的,然后是远程 url (http://path.com)。

加载本地 uri 工作正常。问题是,一旦我从服务器启动加载(可能需要一秒钟),Glide 就会回滚到 ImageView 的背景图像颜色。所以在视觉上我得到旧图像 -> 背景颜色 -> 新图像,这很烦人。

Glide 中是否有某种隐藏的方法来解决这个问题?

这是因为在加载服务器图像时,删除本地图像和显示新图像之间存在差距,而这个差距就是您的问题。
这个问题的解决方法之一是给 Glide 一个占位符(将你的本地图像设置为占位符)所以当 Glide 从服务器加载图像时它仍然显示本地图像并且一旦服务器图像被加载本地图像就会消失。

Glide.with(imageHolder.getContext())
    .placeholder(YOUR_LOCAL_IMAGE_HERE)
    .load(url)
    .into(imageHolder);