private File getCacheFile(final ImageRequest request) { FileCache mainFileCache = ImagePipelineFactory .getInstance() .getMainFileCache(); final CacheKey cacheKey = DefaultCacheKeyFactory .getInstance() .getEncodedCacheKey(request, false); // we don't need context, but avoid null File cacheFile = request.getSourceFile(); // http://crashes.to/s/ee10638fb31 if (mainFileCache.hasKey(cacheKey) && mainFileCache.getResource(cacheKey) != null) { cacheFile = ((FileBinaryResource) mainFileCache.getResource(cacheKey)).getFile(); } return cacheFile; } }
/** * 获取磁盘上主缓存文件缓存的大小 */ public static long getMainFileCache() { Fresco.getImagePipelineFactory().getMainFileCache().trimToMinimum(); return Fresco.getImagePipelineFactory().getMainFileCache().getSize(); }
private boolean addFileToLocalCache(String requestUrl, File file) { CacheKey remoteUrlCacheKey = getCacheKey(requestUrl); InputStream localFileInputStream = null; try { localFileInputStream = new FileInputStream(file); BinaryResource resource = Fresco.getImagePipelineFactory().getMainFileCache().insert(remoteUrlCacheKey, WriterCallbacks.from(localFileInputStream)); return resource != null && resource.size() > 0; } catch (IOException e) { e.printStackTrace(); return false; } finally { try { if (localFileInputStream != null) { localFileInputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
/** * 获取磁盘缓存的文件路径 * * @param url 文件url * @return 文件路径 */ private static String getDiskCacheFilePath(String url) { FileBinaryResource resource = (FileBinaryResource) Fresco.getImagePipelineFactory() .getMainFileCache() .getResource(new SimpleCacheKey(url)); // 防止中途清除磁盘缓存 导致获取不到 if (resource == null) { return ""; } File file = resource.getFile(); return file.getAbsolutePath(); }
public static byte[] getByte(ImageRequest request) throws IOException { CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(request, null); BinaryResource bRes = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); return bRes.read(); }
public static File getCache(ImageRequest request) { CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(request, null); BinaryResource bRes = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); return ((FileBinaryResource) bRes).getFile(); }
/** * 获取文件缓存 */ public static File getFileCache(String uri) { ImageRequest imageRequest = ImageRequest.fromUri(uri); CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest, null); BinaryResource resource = ImagePipelineFactory.getInstance() .getMainFileCache().getResource(cacheKey); return ((FileBinaryResource) resource).getFile(); }
/** * 本地缓存文件 */ public static File getCache(Context context, Uri uri) { if (!isCached(context, uri)) return null; ImageRequest imageRequest = ImageRequest.fromUri(uri); CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest, context); BinaryResource resource = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); return ((FileBinaryResource) resource).getFile(); }
public static byte[] getByte(Context context, Uri uri) throws IOException { if (!isCached(context, uri)) return null; ImageRequest imageRequest = ImageRequest.fromUri(uri); CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest, null); BinaryResource bRes = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); return bRes.read(); }
public static boolean isImageDownloaded(Context context, Uri loadUri) { if (loadUri == null) { return false; } CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(ImageRequest.fromUri(loadUri), context); return ImagePipelineFactory.getInstance().getMainFileCache().hasKey(cacheKey) || ImagePipelineFactory.getInstance().getSmallImageFileCache().hasKey(cacheKey); }
private File getCachedImageOnDisk(String url) { CacheKey key = getCacheKey(url); if (key == null) { return null; } File localFile = null; if (ImagePipelineFactory.getInstance().getMainFileCache().hasKey(key)) { BinaryResource resource = ImagePipelineFactory.getInstance().getMainFileCache().getResource(key); if (resource != null) { localFile = ((FileBinaryResource) resource).getFile(); } } else if (ImagePipelineFactory.getInstance().getSmallImageFileCache().hasKey(key)) { BinaryResource resource = ImagePipelineFactory.getInstance().getSmallImageFileCache().getResource(key); if (resource != null) { localFile = ((FileBinaryResource) resource).getFile(); } } return localFile; }
public static File getCachedImageOnDisk(Context context, Uri loadUri) { File localFile = null; if (loadUri != null) { CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(ImageRequest.fromUri(loadUri), context); if (ImagePipelineFactory.getInstance().getMainFileCache().hasKey(cacheKey)) { BinaryResource resource = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); localFile = ((FileBinaryResource) resource).getFile(); } else if (ImagePipelineFactory.getInstance().getSmallImageFileCache().hasKey(cacheKey)) { BinaryResource resource = ImagePipelineFactory.getInstance().getSmallImageFileCache().getResource(cacheKey); localFile = ((FileBinaryResource) resource).getFile(); } } return localFile; } }
/** * 图片是否已经存在了 */ public static boolean isCached(Context context, Uri uri) { ImagePipeline imagePipeline = Fresco.getImagePipeline(); DataSource<Boolean> dataSource = imagePipeline.isInDiskCache(uri); if (dataSource == null) { return false; } ImageRequest imageRequest = ImageRequest.fromUri(uri); CacheKey cacheKey = DefaultCacheKeyFactory.getInstance().getEncodedCacheKey(imageRequest, context); BinaryResource resource = ImagePipelineFactory.getInstance().getMainFileCache().getResource(cacheKey); return resource != null && dataSource.getResult() != null && dataSource.getResult(); }
public static File getCachedImageOnDisk(CacheKey cacheKey) { File localFile = null; if (cacheKey != null) { if (ImagePipelineFactory.getInstance().getMainFileCache().hasKey(cacheKey)) { BinaryResource resource = ImagePipelineFactory.getInstance().getMainDiskStorageCache().getResource(cacheKey); localFile = ((FileBinaryResource) resource).getFile(); } else if (ImagePipelineFactory.getInstance().getSmallImageFileCache().hasKey(cacheKey)) { BinaryResource resource = ImagePipelineFactory.getInstance().getSmallImageFileCache().getResource(cacheKey); localFile = ((FileBinaryResource) resource).getFile(); } } return localFile; }