Glide加載圖片的小坑

場景描述:

Recyclerview中加載圖片, 但是有一部分圖片服務器上面沒有, 這時候快速滑動RecyclerView的時候, 如果正好上一次圖片是拿不到的情況, 過後才返回error, 這時候error就會覆蓋當前的圖片, 導致錯亂。具體代碼如下:

if (imageResourceID == -1) {
    Glide.with(activity)
                        .load(imageUrl)
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .error(R.drawable.icon_load_error_pow_coin)
                        .into(imageView);
} else {
     coinImageIcon.setImageResource(imageResourceID);
}

先在程序中查找了一下有沒有需要展示的圖片, 沒有的話再去網絡加載, 這時候就很容易發生上述的問題了。

解決方式如下, 其實就是把else裏面替換成:

Glide.with(activity)
                        .load(resourceId)
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .error(R.drawable.icon_load_error_pow_coin)
                        .into(imageView);

猜想可能是Glide裏面做了setTag()處理吧...  , 希望大牛能給解答下爲啥...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章