我有一个简单的用例。我有一个本地图像uri(content://path
),我加载到ImageView
- 这就是第1步。按下按钮后,图像将替换为来自我们服务器的图像 - #39; s第2步。
我的代码很简单 - 或者至少,即使我将代码简化为以下代码,我也可以重现这个问题:
Glide.with(imageHolder.getContext()).load(url).into(imageHolder);
第一次使用本地uri(content://path
)调用此函数,后跟远程网址(http://path.com
)。
加载本地uri工作正常。问题是,一旦我从服务器启动加载(可能需要一秒钟),Glide
将回滚到ImageView
的背景图像颜色。所以视觉上我得到旧图像 - >背景颜色 - >新形象,这很烦人。
Glide有什么隐藏的方法可以解决这个问题吗?
答案 0 :(得分:2)
这是因为在加载服务器图像时,在删除本地图像和显示新图像之间存在差距,而这种差距是您的问题。
这个问题的一个解决方法是给Glide一个占位符(将你的本地图像设置为占位符),这样当Glide从服务器加载图像时,它仍然显示本地图像,一旦加载服务器图像,本地图像就会消失。
Glide.with(imageHolder.getContext())
.placeholder(YOUR_LOCAL_IMAGE_HERE)
.load(url)
.into(imageHolder);