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加載圖片出現問題(並不會報錯);在這裏記錄一下,希望對遇到這樣問題的小夥伴,有所幫助;

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