1. 程式人生 > >解決RecyclerView中使用UIL載入網路圖片,在重新整理時出現閃爍問題

解決RecyclerView中使用UIL載入網路圖片,在重新整理時出現閃爍問題

      對於開源框架universal-image-loader大多數開發者都不會陌生,的確這是一款很不錯的圖片類框架,值得推薦。github地址是:https://github.com/nostra13/Android,在我之前的部落格中有專門推薦GitHub上幾款比較實用而且受歡迎的開源專案,OK,連結在此 github android優秀的開源專案、作者推薦

好的,馬上進入主題:在使用listview載入圖片的過程中,當你寫好你的介面卡中並呼叫imageLoader的displayImage(uri, imageView) 會出現這樣的情況:拖動listview會出現圖片的閃爍(重複重新整理的情況)。很明顯,這是很不討人喜歡的使用者體驗!

   如何解決?

   首先要知道問題出在哪邊,看看你在adapter中的getView方法吧。

   首先你要確保在每次介面卡呼叫getview的時候,你的viewholder 中的imageview不會重複載入圖片,什麼意思呢?

   看程式碼:

     String imagepath = StringUtils.getImageExternalPath(context, imageUri);


     holder.itemImage.setScaleType(ScaleType.CENTER_CROP); 


     if(!imagepath.equals(holder.itemImage.getTag())) { 


          holder.itemImage.setTag(imagepath);


          mImageLoader.displayImage("file://" + imagepath, holder.itemImage, BaseApplication.imageOptions_item, null);

}
如上程式碼是說,listitem 中的imageview,在介面重新整理的過程中,不會重複的去displayImage,這個imageView已經載入過圖形了,沒必要再去重新整理,導致閃爍的現象。而你要做的就是加個判斷,我把它(圖片路徑)儲存在imageView的tag中,,每次getView我都會先判斷它是否存在,這樣就行了。有更好的解決方法的話,請留言!感謝!