You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Flutter中如何正确获取应用图标?

Flutter 应用内获取自身图标无需额外放入assets的实现方案

方案1:使用application_icon插件

这是目前通用性最强的原生层取应用图标方案,不需要重复把图标放进assets目录,原生端会自动读取当前应用已配置的 launcher icon 并返回给Flutter层。

  • 第一步:添加依赖
    在pubspec.yaml中加入依赖配置:
dependencies:
  application_icon: ^1.1.0
  • 第二步:调用获取图标
    直接在Dart代码中调用方法获取Uint8List格式的图标数据,即可直接用来展示:
import 'package:application_icon/application_icon.dart';
import 'dart:typed_data';

// 异步获取图标数据
Uint8List? appIcon = await ApplicationIcon().getAppIcon();

// 展示图标
Image.memory(appIcon!)
  • 适配说明:
    • Android端无需额外配置,会自动读取AndroidManifest.xml中配置的启动图标
    • iOS端无需额外配置,会自动读取Assets.xcassets中的AppIcon配置
    • 插件支持自定义获取不同分辨率的图标,按需调用对应方法即可

方案2:自定义原生通道实现(无第三方依赖)

如果对包体积控制要求较高,不想引入第三方插件,可以自己实现简易的MethodChannel完成逻辑:

  • Android原生端:读取当前应用ApplicationInfo中的icon资源,转成字节流返回给Flutter层
  • iOS原生端:读取对应分辨率的AppIcon资源,转成NSData返回给Flutter层
  • Dart端通过MethodChannel接收字节流后,直接用Image.memory组件展示即可

两种方案都完全复用原生端已经配置好的启动图标,不需要把应用图标额外复制一份到Flutter的assets目录,避免了两套图标不一致、额外占用包体积的问题。

内容的提问来源于stack exchange,提问作者MLZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:54:04