在Flutter中更快地加载您的图像资源
本文主要介绍在Flutter中更快地加载您的图像资源
我们可以将图像放在我们的资产文件夹中,但如何更快地加载它们?这是 Flutter 中的一个秘密函数,可以帮助我们做到这一点 — precacheImage()
很多时候(尤其是在 Flutter Web 中),您的本地资源图像需要花费大量时间在屏幕上加载和渲染!
对于用户的角度来看E本是不好秒 pecially如果图像是屏幕的背景图像。如果图像是您屏幕中的任何组件,我们仍然可以显示微光或其他内容,以便用户知道该图像正在加载。但是我们不能对背景图像显示微光!
我们在 Flutter 中有一个简单而有用的方法,我们可以用它来更快地加载我们的资产图像**——precacheImage()!**
precacheImage 将 ImageProvider 和 context 作为必需参数并返回 Future
Future<void> precacheImage( ImageProvider<Object> provider, BuildContext context, {Size? size, ImageErrorListener? onError}
)
此方法将图像预取到图像缓存中,然后无论何时使用该图像,它的加载速度都会快得多。但是,ImageCache 不允许保存非常大的图像。
由于在此需要上下文,因此我们可以在可访问上下文的任何函数中添加 precacheImage()。我们可以将相同的内容放在第一个屏幕的**didChangeDependencies()**方法中!
例子:
void didChangeDependencies()
{ precacheImage(AssetImage("assets/logo.png"), context); precacheImage(AssetImage("assets/home_bg.png"), context);
super.didChangeDependencies();
}
上面的例子将缓存logo.png
并home_bg.png
放入ImageCache。所以现在,无论何时我们使用这个图像,它都会加载得更快!
结论
这是一个方便的提示,可以更快地加载您的图像资源!这是一个关于使用和不使用**precacheImage()**加载图像所需时间的小统计数据
你可以看到,开始的 3 个打印语句是没有 precacheImage 的,每次都花费近 10 毫秒。现在,下一个是 precacheImage,它在缓存中存储图像需要 14 毫秒。随后的加载只用了 5 毫秒。所以我们可以得出结论,它将加载时间减少到近 50%!
在Flutter中更快地加载您的图像资源相关推荐
- 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?
问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?哪个效率更高? 例如: <img src ...
- 「小技巧」如何让IGV更快的加载GTF和GFF注释文件
很简单,就下面3行命令 gff= (grep ^"#" $gff; grep -v ^"#" $gff | sort -k1,1 -k4,4n) | bgzip ...
- 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
文章目录 前言 一.混合开发中启用 Flutter 的 热重启 / 热加载 二.混合开发中 Flutter 的 热重启 / 热加载 命令测试 三.指定混合应用连接的设备 四.相关资源 前言 上一篇博客 ...
- [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?
[html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢? 当默认图也失效,就会陷入死循环,需加变量计数,如果是 vue 的话用 @error.once 更妙.在 onerror 给元 ...
- Android中使用x5内核加载网页的实现
前言 联系方式 背景 SDK下载 SDK集成 使用 代码实现 前言 由于是使用的腾讯浏览服务,所以这里大部分介绍的是官网的一些东西,不过自己会做一些复杂使用部分的实现,不至于像官网上介绍的笼统. 联系 ...
- Flutter开发(二十九):Flutter热重启、热加载、调试与发布应用
1.Flutter热重启.热加载 2.混合开发调试 dart 代码 3.发布应用 1.Flutter热重启.热加载 Flutter自带热重启/热加载的功能,但是到了 Android 项目中集成 Flu ...
- Cesium中地形数据的加载
在cesium中为了看到更真实的世界,加载地形数据是必不可少的. 有地形数据和没有地形数据进行比较,就会一目了然了. 说明:1.地形数据是无法单独展示的,地形数据需要结合影像图或者普通瓦片来展示才能看 ...
- 计算机快应用,快应用加载器PC助手
快应用加载器PC助手是一款功能强大.专业好用的应用程序加载软件,该软件支持加载快应用到多终端,并可测试卡片和hap链接,在电脑上安装快应用加载器PC助手后,可以运行打包生成的rpk包,用户只需连接已连 ...
- 从源码看DL4J中Native BLAS的加载,以及配置
最近在用DeepLearning4J(DL4J)尝试语音识别的深度学习,git DL4J的代码,用IntelliJ IDEA打开,配置好相关依赖后,运行包org.deeplearning4j.exam ...
最新文章
- extjs插件开发上传下载文件简单案例
- 单纯形法只有两个约束条件_教学 | 线性规划 7 :单纯形法的引入
- 学python可以做什么职业-业余学Python能做什么?对职业发展有什么帮助?
- (转)HDOJ 4006 The kth great number(优先队列)
- nginx+php简单配置环境
- combox取值以及赋值的方法
- 15款13英寸低配mbp的外接显示器选择
- 上海富勒wms_【3PL | 多家三方物流应用富勒WMS,仓配一体助力供应链升级】
- c51汇编语言教程,汇编语言入门视频教程
- CSS flex属性深入理解
- python七段数码管的绘制 获取系统时间
- 微信公众平台网页服务器,微信公众号——网页端
- 苹果系统安全吗?7种方法保护自己的隐私
- 计算机发展前景思维导图,计算机绘制思维导图有什么优势
- 虚拟主播合成视频使用教程
- python创建一个国际象棋棋盘,Jupyter Notebook:实现国际象棋棋盘
- 详解抖音壁纸号的具体玩法,变现方法容易吗?
- Java 中 switch 的用法
- 【小技巧】argc和argv的用法
- NLP学习笔记-FastText文本分类(四)
热门文章
- mysql数据库技术方案,MySql数据库优化方案
- android webview tel:,Android WebView“tel:”链接显示未找到网页
- created写法_在vue中created、mounted等方法使用小结
- iphone照片删掉又出现_iPhone 内存不够用,原因在这儿!
- python的ai写作_神奇,用Python写一个AI贪吃蛇,真的可以追着你跑的那种
- python怎么导入txt数据库_Python导入txt数据到mysql的方法
- 怎么通过name配置button_利器 | AppCrawler 自动遍历测试实践(二):定制化配置
- git add多个文件_Git之旅② - 子命令与设计哲学
- 计算机网络技术班会,【主题班会】17计算机网络技术三班“走出手机幻境,拥抱真实生活”主题班会...
- 滚动条的值如何赋值_如何给Word文本框添加滚动条?史上最详细步骤