本文主要介绍在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.pnghome_bg.png放入ImageCache。所以现在,无论何时我们使用这个图像,它都会加载得更快!

结论

这是一个方便的提示,可以更快地加载您的图像资源!这是一个关于使用和不使用**precacheImage()**加载图像所需时间的小统计数据

你可以看到,开始的 3 个打印语句是没有 precacheImage 的,每次都花费近 10 毫秒。现在,下一个是 precacheImage,它在缓存中存储图像需要 14 毫秒。随后的加载只用了 5 毫秒。所以我们可以得出结论,它将加载时间减少到近 50%!

在Flutter中更快地加载您的图像资源相关推荐

  1. 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?

    问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 浏览器是直接加载二进制图片更快还是加载base64编码的图片更快?哪个效率更高? 例如: <img src ...

  2. 「小技巧」如何让IGV更快的加载GTF和GFF注释文件

    很简单,就下面3行命令 gff= (grep ^"#" $gff; grep -v ^"#" $gff | sort -k1,1 -k4,4n) | bgzip ...

  3. 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )

    文章目录 前言 一.混合开发中启用 Flutter 的 热重启 / 热加载 二.混合开发中 Flutter 的 热重启 / 热加载 命令测试 三.指定混合应用连接的设备 四.相关资源 前言 上一篇博客 ...

  4. [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢?

    [html] 当img标签中的src图片加载失败时,怎么让它变得更美观呢? 当默认图也失效,就会陷入死循环,需加变量计数,如果是 vue 的话用 @error.once 更妙.在 onerror 给元 ...

  5. Android中使用x5内核加载网页的实现

    前言 联系方式 背景 SDK下载 SDK集成 使用 代码实现 前言 由于是使用的腾讯浏览服务,所以这里大部分介绍的是官网的一些东西,不过自己会做一些复杂使用部分的实现,不至于像官网上介绍的笼统. 联系 ...

  6. Flutter开发(二十九):Flutter热重启、热加载、调试与发布应用

    1.Flutter热重启.热加载 2.混合开发调试 dart 代码 3.发布应用 1.Flutter热重启.热加载 Flutter自带热重启/热加载的功能,但是到了 Android 项目中集成 Flu ...

  7. Cesium中地形数据的加载

    在cesium中为了看到更真实的世界,加载地形数据是必不可少的. 有地形数据和没有地形数据进行比较,就会一目了然了. 说明:1.地形数据是无法单独展示的,地形数据需要结合影像图或者普通瓦片来展示才能看 ...

  8. 计算机快应用,​快应用加载器PC助手

    快应用加载器PC助手是一款功能强大.专业好用的应用程序加载软件,该软件支持加载快应用到多终端,并可测试卡片和hap链接,在电脑上安装快应用加载器PC助手后,可以运行打包生成的rpk包,用户只需连接已连 ...

  9. 从源码看DL4J中Native BLAS的加载,以及配置

    最近在用DeepLearning4J(DL4J)尝试语音识别的深度学习,git DL4J的代码,用IntelliJ IDEA打开,配置好相关依赖后,运行包org.deeplearning4j.exam ...

最新文章

  1. extjs插件开发上传下载文件简单案例
  2. 单纯形法只有两个约束条件_教学 | 线性规划 7 :单纯形法的引入
  3. 学python可以做什么职业-业余学Python能做什么?对职业发展有什么帮助?
  4. (转)HDOJ 4006 The kth great number(优先队列)
  5. nginx+php简单配置环境
  6. combox取值以及赋值的方法
  7. 15款13英寸低配mbp的外接显示器选择
  8. 上海富勒wms_【3PL | 多家三方物流应用富勒WMS,仓配一体助力供应链升级】
  9. c51汇编语言教程,汇编语言入门视频教程
  10. CSS flex属性深入理解
  11. python七段数码管的绘制 获取系统时间
  12. 微信公众平台网页服务器,微信公众号——网页端
  13. 苹果系统安全吗?7种方法保护自己的隐私
  14. 计算机发展前景思维导图,计算机绘制思维导图有什么优势
  15. 虚拟主播合成视频使用教程
  16. python创建一个国际象棋棋盘,Jupyter Notebook:实现国际象棋棋盘
  17. 详解抖音壁纸号的具体玩法,变现方法容易吗?
  18. Java 中 switch 的用法
  19. 【小技巧】argc和argv的用法
  20. NLP学习笔记-FastText文本分类(四)

热门文章

  1. mysql数据库技术方案,MySql数据库优化方案
  2. android webview tel:,Android WebView“tel:”链接显示未找到网页
  3. created写法_在vue中created、mounted等方法使用小结
  4. iphone照片删掉又出现_iPhone 内存不够用,原因在这儿!
  5. python的ai写作_神奇,用Python写一个AI贪吃蛇,真的可以追着你跑的那种
  6. python怎么导入txt数据库_Python导入txt数据到mysql的方法
  7. 怎么通过name配置button_利器 | AppCrawler 自动遍历测试实践(二):定制化配置
  8. git add多个文件_Git之旅② - 子命令与设计哲学
  9. 计算机网络技术班会,【主题班会】17计算机网络技术三班“走出手机幻境,拥抱真实生活”主题班会...
  10. 滚动条的值如何赋值_如何给Word文本框添加滚动条?史上最详细步骤