关于fresco的使用之--CacheKey获取本地缓存

最近自己做了一个app涉及到分享图片以及gif文件,查看过多个框架最终决定使用Facebook的fresco框架,功能很强大,具体可以看git链接https://github.com/desmond1121/Fresco-Source-Analysis。关于Fresco的说明不多说,这里主要说一下获取本地缓存:

我们如果适用QQ分享的话,会发现需要我们传入一个本地图片的url,使用Fresco初始化的时候设置本地缓存规则:

DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder()
                .setBaseDirectoryPath(Environment.getExternalStorageDirectory().getAbsoluteFile())
                .setBaseDirectoryName(Constants.CACHE_DIRECTORY)
                .setMaxCacheSize(100 * ByteConstants.MB)
                .setMaxCacheSizeOnLowDiskSpace(50 * ByteConstants.MB)
                .setMaxCacheSizeOnVeryLowDiskSpace(30 * ByteConstants.MB).build();
会自动在手机本地或者SD卡生成缓存文件夹,并且会设置最大缓存空间然后我们就可以根据CacheKey来获取缓存文件路劲,从而实现分享,具体代码:

imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url)).build();

                CacheKey cacheKey= DefaultCacheKeyFactory.getInstance()
                        .getEncodedCacheKey(imageRequest);
                BinaryResource resource = ImagePipelineFactory.getInstance()
                        .getMainDiskStorageCache().getResource(cacheKey);
                final File file=((FileBinaryResource)resource).getFile();

这里获取的是File,至于File如何获取uri就很easy了(file.toURI())。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值