当我使用flutter create命令创建应用程序时,flutter标志将用作两个平台的应用程序图标。

如果我想改变应用程序的图标,我是否应该去两个平台的目录并替换那里的图像?我说的平台目录是myapp/ios/Runner/Assets.xcassets/AppIcon。apppiconset用于iOS, myapp/android/app/src/main/res用于android。

或者可以将图像定义为颤振资产和图标以某种方式生成?


当前回答

flutter_launcher_icons: ^ 0.11.0

将此添加到你的pubspec中。yaml文件

dev_dependencies:
  flutter_launcher_icons: "^0.11.0"

flutter_icons:
  android: "launcher_icon"
  ios: true
  image_path: "assets/icon/icon.png"
  min_sdk_android: 21 # android min sdk min:16, default 21
  # optionally, as transparency is not allowed on app store
  # remove_alpha_ios: true

添加后,运行以下命令

$颤振酒吧得到

$ flutter pub运行flutter_launcher_icons:main

其他回答

像本地开发人员一样设置启动器图标

我在使用和理解flutter_launcher_icons包时遇到了一些麻烦。如果你是面向Android或iOS平台创造应用,你将如何做到这一点。一旦你做过几次,这是非常快速和简单的。

安卓

Android启动器图标有前景层和背景层。

(图片来自Android文档)

为Android创建启动器图标最简单的方法是使用Android Studio中提供的Asset Studio。你甚至不需要离开颤振项目。(VS Code用户,在这一步你可以考虑使用Android Studio。这真的非常方便,熟悉另一个IDE也无妨。)

右键单击项目大纲中的android文件夹。进入新建>图像资产。(尝试右键单击android/app文件夹,如果你没有看到图像资产作为一个选项。更多建议请参见下面的评论。)现在你可以选择一个图像来创建你的启动器图标。

注意:我通常使用1024x1024像素的图像,但你当然应该这样做 不要使用比512x512更小的东西。如果你正在使用Gimp或Inkscape,你 应该有两个图层,一个为前景,一个为 背景。前景图像应该有透明的区域 背景层显示通过。

(这里的狮子剪纸)

这将取代当前的启动器图标。你可以在mipmap文件夹中找到生成的图标:

如果您希望手动创建启动器图标,请参阅此回答以获得帮助。

最后,确保AndroidManifest中的启动器图标名称与上面所调用的相同(默认为ic_launcher):

application android:icon="@mipmap/ic_launcher"

在模拟器中运行应用程序,确认启动器图标已成功创建。

iOS

我以前总是手动调整iOS图标的大小,但如果你用的是Mac, Mac应用商店里有一个免费的应用程序,叫做Icon Set Creator。你给它一个图像(至少1024x1024像素),它会吐出你需要的所有大小(加上内容)。json文件)。感谢你对建议的回答。

iOS图标不应该有任何透明度。点击这里查看更多指南。

创建图标集后,启动Xcode(假设你有一台Mac),并使用它打开Flutter项目中的ios文件夹。然后转到Runner > Assets。xcassets并删除AppIcon项。

然后右键单击并选择Import....选择刚才创建的图标集。

就是这样。确认图标是通过在模拟器中运行应用程序创建的。

如果你没有Mac…

您仍然可以手工创建所有图像。在Flutter项目中,转到ios/Runner/Assets.xcassets/AppIcon.appiconset。

您需要的图像大小是文件名中的大小相乘。例如,Icon-App-29x29@3x.png将是29乘以3,即87像素的平方。您需要保持相同的图标名称,或者编辑JSON文件。

您必须将Flutter图标文件替换为您自己的图像。这个网站将帮助你把你的png转换成各种大小的启动器图标:

https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html

Flutter Launcher Icons已设计用于帮助快速生成Android和iOS的启动器图标:https://pub.dartlang.org/packages/flutter_launcher_icons

将包添加到您的pubspec中。yaml文件(在Flutter项目中)来使用它 pubspec之内。yaml文件指定图标的路径,你希望使用的应用程序,然后选择是否要使用图标的iOS应用程序,Android应用程序或两者。 运行包 瞧!默认的启动器图标现在已经替换为您的自定义图标

我希望在GitHub README中添加一个视频来演示它

演示如何运行该工具的视频可以在这里找到。

如果有人想提出改进建议/报告错误,请将其作为一个问题添加到GitHub项目中。

更新:截至2018年1月24日星期三,您应该能够创建新的图标,而不覆盖颤振项目中旧的现有启动器图标。

更新2:从v0.4.0(2018年6月8日)开始,你可以为Android图标指定一个图像,为iOS图标指定一个单独的图像。

更新3:截至v0.5.2(2018年6月20日),您现在可以为您的Flutter项目的Android应用程序添加自适应启动器图标

试试IconKitchen吧,它是Android Asset Studio的继承者,是为Android、iOS和网页制作高度自定义应用图标的绝佳新方法。

遵循以下步骤:-

1. 在pubspec中添加flutter_luncher_icons的依赖项。yaml文件。你可以在这里找到这个插件。

2. 在资产文件夹和pubspec中添加所需的图像。Yaml文件如下。

pubspec.yaml

name: NewsApi.org
description: A new Flutter application.

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev

https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
      sdk: flutter


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.1
  fluttertoast: ^7.1.6
  toast: ^0.1.5
  flutter_launcher_icons: ^0.8.0




dev_dependencies:
  flutter_test:
    sdk: flutter

flutter_icons:
  image_path: "assets/icon/newsicon.png"
  android: true
  ios: false

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true
  assets:
    - assets/images/dropbox.png



  fonts:
    - family: LangerReguler
      fonts:
        - asset: assets/langer_reguler.ttf




  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

3.执行terminal flutter pub get命令,然后执行flutter_luncher_icon命令。这是成功运行命令后得到的结果。并成功生成了午餐图标。

我的终端

[E:\AndroidStudioProjects\FlutterProject\NewsFlutter\news_flutter>flutter pub get
Running "flutter pub get" in news_flutter...                       881ms

E:\AndroidStudioProjects\FlutterProject\NewsFlutter\news_flutter>flutter pub run flutter_launcher_icons:main
  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.8.0)
  ════════════════════════════════════════════

• Creating default icons Android
• Overwriting the default Android launcher icon with a new icon

✓ Successfully generated launcher icons