/** * 从sdcard中获取内存缓存 * * @param url 图片url地址 * @param buffer 填充缓存区 * @return 是否获得图片 */ public boolean getImageData(String url, BytesBuffer buffer) { if (mDiskCache == null) return false; byte[] key = Utils.makeKey(url); long cacheKey = Utils.crc64Long(key); try { LookupRequest request = new LookupRequest(); request.key = cacheKey; request.buffer = buffer.data; synchronized (mDiskCache) { if (!mDiskCache.lookup(request)) return false; } if (Utils.isSameKey(key, request.buffer)) { buffer.data = request.buffer; buffer.offset = key.length; buffer.length = request.length - buffer.offset; return true; } } catch (IOException ex) { // ignore. } return false; }