Fresco磁碟快取

2021-08-14 11:17:03 字數 2581 閱讀 1174

import android.content.context;

import android.graphics.bitmap;

import android.os.environment;

import android.util.log;

import com.facebook.cache.disk.diskcacheconfig;

import com.facebook.common.disk.noopdisktrimmableregistry;

import com.facebook.common.internal.supplier;

import com.facebook.common.memory.memorytrimtype;

import com.facebook.common.memory.memorytrimmable;

import com.facebook.common.memory.noopmemorytrimmableregistry;

import com.facebook.common.util.byteconstants;

import com.facebook.imagepipeline.cache.memorycacheparams;

import com.facebook.imagepipeline.core.imagepipelineconfig;

import com.facebook.imagepipeline.core.imagepipelinefactory;

/** * created by 紳丶士 on 2017/12/21.

*/public class cipanhuancun

};//小的磁碟配置

.setbasedirectoryname(image_pipeline_small_cache_dir)//資料夾名

.setmaxcachesize(max_disk_cache_size)//預設快取的最大大小。

.setmaxcachesizeonlowdiskspace(max_small_disk_low_cache_size)//快取的最大大小,使用裝置時低磁碟空間。

.setmaxcachesizeonverylowdiskspace(max_small_disk_verylow_cache_size)//快取的最大大小,當裝置極低磁碟空間

.setdisktrimmableregistry(noopdisktrimmableregistry.getinstance())

.build();

//預設的磁碟配置

diskcacheconfig diskcacheconfig = diskcacheconfig.newbuilder(context).setbasedirectorypath(environment.getexternalstoragedirectory().getabsolutefile())//快取基路徑

.setbasedirectoryname(image_pipeline_cache_dir)//資料夾名

.setmaxcachesize(max_disk_cache_size)//預設快取的最大大小。

.setmaxcachesizeonlowdiskspace(max_disk_cache_low_size)//快取的最大大小,使用裝置時低磁碟空間。

.setmaxcachesizeonverylowdiskspace(max_disk_cache_verylow_size)//快取的最大大小,當裝置極低磁碟空間

.setdisktrimmableregistry(noopdisktrimmableregistry.getinstance())

.build();

//快取配置

imagepipelineconfig.builder configbuilder = imagepipelineconfig.newbuilder(context)

.setbitmapsconfig(bitmap.config.rgb_565)

.setbitmapmemorycacheparamssupplier(msuppliermemorycacheparams)

.setsmallimagediskcacheconfig(disksmallcacheconfig)

.setmaindiskcacheconfig(diskcacheconfig)

.setmemorytrimmableregistry(noopmemorytrimmableregistry.getinstance())

.setresizeandrotateenabledfornetwork(true);

// 這段**,用於清理快取

noopmemorytrimmableregistry.getinstance().registermemorytrimmable(new memorytrimmable()

}});

return configbuilder.build();

}}

fresco.initialize(this,cipanhuancun.getdefaultimagepipelineconfig(this));

fresco清除快取

最近用到fresco發現它的快取功能有時候也是一種麻煩。後台改變而不改變位址時,fresco會自動用快取的而不會重新請求。於是在官網等各種地方蒐集資料後,在這裡記錄一下,以免以後忘了。方法一 方法二 imagepipeline imagepipeline fresco.getimagepipelin...

關於Fresco的快取清理的那些事

我相信很多人對fresco這個優秀的第三方網路處理框架不陌生,無論從使用還是配置而言都是很人性化的簡單,今天要講述的是我遇到的關於快取清理的事情。private void showcachesize elseelse if cachesizetemp1 1 cachesizetemp2 1 else...

Fresco獲取快取中的Bitmap,並設定為背景

最近在開發中,遇到這樣的問題 點選使用者頭像,然後跳轉到使用者詳情頁,使用者詳情頁面的背景用使用者頭像模糊處理後設定進去。由於使用者動態頁面的頭像都是用fresco通過url載入顯示的。所以我必須獲取到使用者頭像在記憶體中的bitmap。然後才能進行處理。直接上 public static void...