Flutter网络图片本地缓存如何实现


这篇文章主要讲解了“Flutter网络图片本地缓存如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter网络图片本地缓存如何实现”吧!Flutter原有的图片缓存机制,是通过PaintingBinding.instance!.imageCache来管理缓存的,这个缓存缓存到的是内存中,每次重新打开APP或者缓存被清理都会再次进行网络请求,大图片加载慢不友好,且增加服务器负担。1、查看FadeInImage.assetNetworkImage.network等几个网络请求的命名构造方法,初始化了ImageProvider。其中: image = ResizeImage.resizeIfNeeded(cacheWidth, cacheHeight, NetworkImage(src, scale: scale, headers: headers)),,使用ImageProvider类型的NetworkImage创建了ImageProvider类型的ResizeImage。而NetworkImage是一个继承ImageProvider的抽象类。其中工厂方法给了一个值,const factory NetworkImage(String url免费云主机域名, { double scale, Map? headers }) = network_image.NetworkImage;进入network_image.NetworkImage,到了_network_image_io.dart文件。对其中的_loadAsync方法进行修改,实现图片的本地存储和获取,即可。1、新建一个文件my_local_cache_network_image.dart,将_network_image_io.dart内容复制过来,进行修改。 2、全部文件内容如下(非空安全版本):主要修改有: 1、从本地获取缓存并返回2、图片网络情请求完之后,存储到本地3、保存到本地、从本地获取图片、获取并创建本地缓存路径的具体实现,主要是最其中图片网络请求获取到的bytes和图片的url进行存储等操作。将上面的命名构造方法复制出来,创建一个自己的命名构造方法,比如(部分代码):将ResizeImage.resizeIfNeeded中的NetworkImage替换为MyLocalCacheNetworkImage 即可。感谢各位的阅读,以上就是“Flutter网络图片本地缓存如何实现”的内容了,经过本文的学习后,相信大家对Flutter网络图片本地缓存如何实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是百云主机,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 怎么用php正则替换以什么开头的字符串

今天小编给大家分享一下怎么用php正则替换以什么开头的字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。 一、PHP正则表达式概述PHP正则表…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/05 09:52
Next 07/05 09:52

相关推荐