在Flutter中动态更换App Icon需要借助外部库flutter_launcher_icons。具体步骤如下:
- 添加flutter_launcher_icons插件到
pubspec.yaml文件中,然后运行flutter pub get命令以获取插件。
dependencies:
flutter_launcher_icons: ^0.8.0
- 创建多个图标文件;例如:以
Icon.png为模版生成对应iOS和Android的App icons。在Flutter的项目根目录新建一个icons目录,在该目录下放置所需的图标文件,其文件组织结构如下:
project
│ pubspec.yaml
└───icons
│ │ Icon.png
│ │ Icon-2.png
│ │ Icon-3.png
│ │ ...
│
└───android
│ │ ...
│
└───ios
│ │ ...
│
└───lib
│ ...
- 在
pubspec.yaml文件中设置所需的图标生成参数:
flutter_icons:
image_path: "./icons/Icon.png"
android: true
ios: true
allow_maskable: true
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "./icons/Icon-2.png"
其中,image_path可替换为项目中任何可用图像的路径,android和ios用于指定在哪些平台上要生成图标,allow_maskable和adaptive_icon_background用于生成自适应图标,adaptive_icon_foreground则指定了旧式圆形图标的替代品。
- 运行以下命令:
flutter packages get
flutter pub run flutter_launcher_icons:main
这个命令会将使用所提供的参数来生成适当的平台图标,然后应用图标。
注意:在iOS上,您可能还需要在Xcode中打开项目,然后通过菜单File > Add Files to [project name]来添加应用程序图标。在文件选择器中,选择您刚刚生成的ios/Runner.xcassets/AppIcon.appiconset文件夹。