要判断不同的URL时,isInBitmapMemoryCache返回true,你可以使用以下代码示例:
// 创建一个默认配置的ImagePipelineConfig
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context)
.setBitmapMemoryCacheParamsSupplier(new Supplier() {
public MemoryCacheParams get() {
// 返回一个自定义的内存缓存配置
return new MemoryCacheParams(
// 设置缓存的最大大小
1024 * 1024 * 10, // 10MB
// 设置缓存的最大条目数
Integer.MAX_VALUE,
// 设置内存缓存的最大条目数
Integer.MAX_VALUE,
// 设置内存缓存的最大条目数
Integer.MAX_VALUE,
// 是否允许内存缓存中的条目被复用
true);
}
})
.build();
// 初始化ImagePipeline
Fresco.initialize(context, config);
// 判断不同的URL时,isInBitmapMemoryCache返回true的方法
public static boolean isInBitmapMemoryCache(String url) {
// 获取ImagePipeline
ImagePipeline imagePipeline = Fresco.getImagePipeline();
// 构建一个ImageRequest
ImageRequest imageRequest = ImageRequestBuilder
.newBuilderWithSource(Uri.parse(url))
.build();
// 根据ImageRequest获取CacheKey
CacheKey cacheKey = DefaultCacheKeyFactory.getInstance()
.getEncodedCacheKey(imageRequest, null);
// 判断CacheKey是否存在于BitmapMemoryCache中
return imagePipeline.isInBitmapMemoryCache(cacheKey);
}
使用以上代码,你可以调用isInBitmapMemoryCache(url)
方法来判断不同的URL是否存在于BitmapMemoryCache中。如果返回true,表示存在于缓存中,否则表示不存在于缓存中。