2017-09-23 57 views
-1

我正在開發一個Android應用程序,我需要在recyclerview中顯示一些圖像。我想一次下載圖像,並可能將其保存在android的緩存或內部存儲器中,然後在內部存儲器中顯示圖像,如果存儲器中有圖像,並且不存在,則從服務器加載和下載。如何緩存來自服務器的Android中的圖像並顯示它?

而且我不希望這些圖像出現在用戶的圖庫應用程序中。

我只想知道架構,而不是關於如何去做的代碼。

緩存內存和內部存儲之間是否有區別?我需要將圖像保存在緩存中嗎?

編輯:

我的問題是從一個由@Dima建議,在這個問題他沒有緩存圖像或將其保存在內部存儲不同,我估計。

+0

[緩存圖像和顯示]的可能重複(https://stackoverflow.com/questions/16789676/caching-images-and-displaying) –

回答

-1

滑翔是一個偉大的圖書館異步顯示圖像。

滑翔的磁盤高速緩存策略:

滑翔3.X & 4.x版:DiskCacheStrategy.NONE緩存任何東西,因爲討論

滑翔4.x版:只有DiskCacheStrategy.SOURCE緩存:DiskCacheStrategy.DATA,滑翔3.X原始的全分辨率圖像。在我們上面的示例中,這將是1000x1000像素之一

Glide 4.x:DiskCacheStrategy.RESOURCE Glide 3.x:DiskCacheStrategy.RESULT在降低分辨率(以及可能的轉換)後,僅緩存最終圖像(Glide 3.x的默認行爲)

滑翔4.x的只有:DiskCacheStrategy.AUTOMATIC智能選擇基於滑翔4.x中的資源(默認行爲)

滑翔3.x的緩存策略& 4.x版:DiskCacheStrategy.ALL緩存圖像的所有版本 作爲最後一個例子,如果你有一張你知道經常操作的圖像,它的不同版本,只緩存原始分辨率是有意義的。因此,我們會告訴滑翔只保留原來的:

例如:

滑翔4.x的

GlideApp 
    .with(context) 
     .load(eatFoodyImages[2]) 
     .diskCacheStrategy(DiskCacheStrategy.DATA) 
     .into(imageView3); 

滑翔3.X

Glide 
    .with(context) 
    .load(eatFoodyImages[2]) 
    .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
    .into(imageViewFile); 

和緩存會在您的應用程序的數據文件夾中,所以不會顯示在用戶庫中。

相關問題