Flutter之旅
上QQ阅读APP看书,第一时间看更新

1.1.4 pubspec.yaml文件

关于字体、图片、音频、文本、插件等资源文件的引入,可在pubspec.yaml文件中进行配置。文件夹放置的位置没有限定,只要在pubspec.yaml中配置正确即可。在打包时,Flutter会将其打入安装包内:


#基本信息
name: flutter_journey #项目名
description: A new Flutter application. #项目描述
version: 1.0.0+1 #项目版本
environment: #环境配置
  sdk: ">=2.1.0 <3.0.0" # Dart sdk 版本
#项目依赖
dependencies: # 库依赖,在此之下可以添加项目依赖的第三方库
  flutter: #依赖flutter库
    sdk: flutter 
  cupertino_icons: ^0.1.2 #依赖Cupertino风格图标库
dev_dependencies: #开发环境的依赖库:不会用于生产环境
  flutter_test:
    sdk: flutter
#资源文件
assets: #配置资源,可以是图片和json、音/视频等文件
  - assets/mages/icon_flutter.png 
  - assets/images/2.0x/icon_flutter.png #使用2.0x和3.0x会根据分辨率去加载对应图片
  - assets/images/3.0x/icon_flutter.png
 - assets/data/data.json
fonts: # 配置字体,可配置多个,支持ttf、otf、ttc等字体资源
  - family: TolyIcon #字体名
    fonts: # 字体文件
      - asset: assets/fonts/iconfont.ttf
  - family: 阿里惠普体 #字体名
    fonts:
      - asset: assets/fonts/Alibaba-PuHuiTi-Medium.otf
  - family: Menlo #字体名
    fonts:
      - asset: assets/fonts/Menlo.ttc

提示:对于图片资源,可直接使用图片文件夹路径,如-images/,不必各自配置。另外,对于分辨率不同的设备,可通过2.0x,3.0x等文件夹放置图片,Flutter会自动加载。对比Android项目,mdpi为1.0x,hdpi为1.5x,xhdpi为2.0x,xxhdpi为3.0x,xxxhdpi为4.0x。

通过异步方法rootBundle.loadString('assets/data/data.json')可以加载字符资源,如json、文本等。也可以使用DefaultAssetBundle.of(context)获取AssetBundle对象,再使用该对象的loadString加载字符资源,条条大路通罗马,殊途同归。测试案例见day01/03/main.dart。