【Flutter 问题系列第 55 篇】Flutter 在不同设备下如何加载不同分辨率的图片

这是【Flutter 问题系列第 55 篇】,如果觉得有用的话,欢迎关注专栏。

安卓手机的分辨率各式各样,如果不考虑增加包体的情况下,应为不同分辨率的手机提供相应的 UI 套图,在 Flutter 中你可以这样做。

如何实现

在 Flutter 项目中新增 assets/images/ 文件夹,当然,不一定非得是这个名称。

然后在 images 文件夹下再新建 2.0x3.0x 文件夹,分别用来存储 2 倍图和 3 倍图,1 倍图的直接放到 images 文件夹下即可,如下图所示
【Flutter 问题系列第 55 篇】Flutter 在不同设备下如何加载不同分辨率的图片
然后在 pubspec.yaml 配置文件中添加如下代码

  assets:
    - assets/images/

最后在终端执行 flutter pub get 命令即可,Flutter 会根据当前屏幕的分辨率自动加载相应的图片。

扩展:mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi

我们知道,在 Android 项目中,以 mipmap 开头的文件夹是用来放应用图标的,而在每一个 mipmap 文件夹的最后面,会有一个 dpi小尾巴,如下图所示
【Flutter 问题系列第 55 篇】Flutter 在不同设备下如何加载不同分辨率的图片
不同的 dpi 代表什么意思呢?这里我整理出了一个表格,供大家参考。

分辨率

分辨率名 屏幕分辨率 dp、px 关系
ldpi 240x320 1dp = 0.75px
mdpi 320x480 1dp = 1px
hdpi 480x800 1dp = 1.5px
xhdpi 720x1280 1dp = 2px
xxhdpi 1080x1920 1dp = 3px
xxxhdpi 2160x3840 1dp = 4px

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

Google 的 Flutter 越来越火,截止 2022年1月7日 GitHub 标星已达 134K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。

无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。
上一篇:图片路径


下一篇:解决GitHub打不开问题(保姆级教程)