简介
在iOS中,本地图片可以放在Assets.xcassets中进行管理。这个做得非常好,可以简单理解为一个文件夹,放哪里都可以,非常方便。
但是,在Flutter中,本地图片的管理要麻烦很多。
集中式管理
-
Flutter中本地图片需要集中在一个地方,统一管理。所以,在工程根目录下新建一个asset目录,统一存放资源。文件也跟图片一样,是一种资源。
-
由于屏幕适应,分为1x,2x,3x图,所以添加两个子文件夹,放2倍,3倍图。文件夹的名称固定为2.0x,3.0x
蓝湖下载设置
- 选择Android平台,选中mdpi(1x), xhdpi(2x), xxhdpi(3x)三种规格,下载图片
- 下载完之后,图片名字改成一样的
放置图片
将对应倍数的图片放入对应的文件夹中。由于名字一样,所以要注意放置的位置,不要出错。
企业微信截图_136a7568-8ec6-43b1-b346-a95ee12cd2a2.pngpubspec.yaml声明
- 可以手动添加,集中式的也可以,比如像这样
assets:
- assets/images/
- 也可以用插件flutter-img-sync(推荐)
- 资源文件r.dart
这个是插件flutter-img-sync自动生成的,不需要管,在lib根目录下
将字符串转换为类的静态变量,用起来比较方便
// ignore_for_file: prefer_const_declarations
class R {
/// ![](http://127.0.0.1:9527/assets/images/star_off.png)
static final String assetsImagesStarOff = 'assets/images/star_off.png';
}
使用
按照安卓的习惯就可以了。图片资源不用划分模块,不用分级,全部放在一个级别,通过全局变量访问就好了。
Image.asset(R.assetsImagesStarOff),
企业微信截图_b40b7486-9152-4110-a1dc-a549992537b0.png
可选
插件:“Flutter GetX Generator - 猫哥”
可以有3x图生成1x和2x图,作用有点,但是感觉不是很大。所有图片都是可以从蓝湖下载的,不需要多此一举。
将字符串转化为全局变量的事情也做了,只不过是txt文件,不能直接用,有点遗憾。
不过无论怎么说,也算有特色,有兴趣的话可以尝试一下。
网友评论