南+上偶然发现了一个宝藏,微漫…发现是用Flutter做的,效果还不错。
然后偶然有了一个idea,想用它来做一个平时浏览并下载图片的app。
因为批量下载是没有灵魂的,而有什么事情总是要到PC端审阅再下载是一件很麻烦的事情。
燃烧的大收藏家之魂。。。
为了搞这个整整单机了相当长的一段时间,有很多事情都顾不得了…
起源
最初的时候的想法是我在看图片的时候边看的同时边就缓存下来,缓存到本地的路径根据图片本身来定义,比如
/sdcard0/.../Download/魔法少女[32P]/1.jpg
或者以某种MD5特征值来命名也行,要下载的时候直接移动或者复制。
关键是这个缓存步骤要能实现,且对我是透明的,也就是我不仅图片要能够缓存,而且要能指定它缓存到本地的位置(退一步,知道计算方式也行)。
过程
我也不知道我对拿来主义是个什么态度。
反正在网上搜了搜,看看情况再说。
。。。
- Image
- Image.asset
- Image.network
- Image.file
- FadeInImage
- 有占位图和淡入效果
- FadeInImage.assetNetwork
- FadeInImage.memoryNetwork(展位图用Uint8List加载,通常和透明kTransparentImage配合)
- cached_network_image
- 有占位图和加载出错图
- 保存到缓存
- 基于flutter_cache_manager
- 没仔细看,感觉和我的需求有点不太一致,至少没有暴露出来想要的东西。
看来还是要DIY了,看看有啥参考的没。
- 发现这个挺好,稍微改了下源码
- 继承ImageProvider写了个MyNetworkImage,实现重点在_loadAsync方法
- Flutter 实现图片缓存到本地
- Github 源码
- 相对于原来的改动大概如图