在StackOverflow上找到的辦法:Glide: load drawable but don't scale placeholder凡简。
Glide.with(context)
.load(product.getImageUrl())
.placeholder(R.mipmap.img_scp_product_default)
.error(R.mipmap.img_scp_product_default)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target,
boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model,
Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// 在更新網(wǎng)絡圖片后會導致圖片按占位符的比例縮放狂票,只有重新加載后圖片才正常顯示
// 這里通過移除占位符后再重新加載圖片實現(xiàn)圖片按比例顯示,但是會導致短暫的閃爍
productHolder.imgProduct.setImageResource(0);
return false;
}
})
.into(productHolder.imgProduct);
通過設(shè)置請求結(jié)果的監(jiān)聽君仆,在得到請求結(jié)果后移除占位圖丐一,這樣圖片就能按本身的尺寸加載。
這會導致的問題是在移除和加載網(wǎng)絡圖片之間會有短暫的閃爍娶视,設(shè)置淡入淡出動畫沒有效果,后面會嘗試添加自定義動畫看是否能避免閃爍睁宰。