目錄

Android Java - 簡易今日頭條 - 圖片緩存與懶加載

前言

上次的文章中我寫了關於新聞數據請求渲染的部份。這篇文章就簡要說一下怎麼做到圖片緩存與懶加載。

Display

/android_java_image_cache_and_lazy_load/index/Display_image_picasso.gif
圖片緩存與懶加載展示

項目倉庫

簡易今日頭條 - Github

具體實現

圖片的緩存最直接的方法就是將圖片下載到本地緩存,然後顯示到圖片,然而網上有一個 API 是 square/picasso - Github,實現原理可以看 Picasso从使用到原理详解 - JasonWang’s Blog,這篇文章講的很好。Picasso 可以將我們的圖片進行二級緩存,並檢查內存是否有這張圖片,如果有就無需下載,沒有就進行 OkHttp 在線程池的子線程請求(也就是異步請求回調函數使用的線程)。

我是將圖片緩存寫到了 ui/card/newsCardList/NewsCardItemDataModel.java 中的 RecyclerView.ViewHolder 子類中 bindData(),這裡就只寫一下簡單的使用方式。

1
Picasso.get().load(dataModel.getAvatar()).into(mAvatarView);

Reference