1. 程式人生 > >Glide 無法載入圖片,載入圖片失效

Glide 無法載入圖片,載入圖片失效

昨天中午遇到一個很奇葩的bug,glide就是不載入圖片,而且不顯示佔位圖片和錯誤圖片,各種除錯後還是無果;

我先描述下無法載入圖片的場景; 我們的IM聊天頁面給我們丟擲了一個Adapter的實現介面,實現這個介面後可以在未實現的方法裡面定義各種佈局卡片(其實實現後就和Adapter類似);

由於這些佈局卡片,由於這些卡片上的資料是動態的,每次在聊天頁面載入卡片的時候就會獲取網路請求,然後設定卡片佈局內容;有一個比較特殊的佈局,這個卡片裡面需要顯示頭像和人名,使用RecyclerView實現的(這裡還有RecyclerView巢狀RecyclerView的問題);顯示頭像我用的是Glide的載入圓形圖片,自己封裝的一個工具類

public static void glideClrcle(Context context, String urlString, ImageView imageView) {
    Glide.with(context)
            .load(urlString)
            .bitmapTransform(new CropCircleTransformation(context))
            .placeholder(R.mipmap.person_touxiang)
            .error(R.mipmap.person_touxiang)
            .signature(new StringSignature(String.valueOf(System.currentTimeMillis())))
            //不使用快取的圖片
            .into(imageView);
}

這個工具類在我們專案中使用的地方非常多,尷尬的是這張特殊的卡片點選後的頁面和卡片上顯示的頭像資料是一樣的,在卡片的點選進入的頁面頭像顯示的沒有問題;

最終我是用嘗試的心態更改了Context的引用方式,不用這個實現介面類構造器裡面的Context,採用的是Applicatio中的Context居然神奇的能夠載入圖片;忙了一下午總算是解決掉了,這裡總結的結果是:Context傳遞的層級太深,導致Glide載入圖片出現問題(並不會報錯);在這裡記錄一下,希望對遇到這樣問題的小夥伴,有所幫助;