Flutter图标

https://fluttericon.cn/
Flutter 内置了丰富的图标。

Icon(Icons.ac_unit)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Flutter 中导入和使用图标有多种方式,最常见的是: 1. **使用内置的 Material Icons(推荐简单场景)** 2. **将自定义图标字体(如 `.ttf` 文件)添加到项目中(适合自定义图标库)** 3. **使用 `IconData` 手动创建图标引用** 下面详细介绍 **Flutter 图标导入流程**,以“如何导入并使用自定义图标字体”为核心。 --- ## ✅ 方法一:使用内置 Material Icons(无需导入) Flutter 内置了 [Material Icons](https://fonts.google.com/icons),可以直接使用。 ### 示例代码: ```dart import 'package:flutter/material.dart'; Icon(Icons.home) // 直接使用 ``` > ⚠️ 优点:开箱即用 > 缺点:不能添加自定义图标 --- ## ✅ 方法二:导入自定义图标字体(`.ttf` 文件)——常用且灵活 适用于你从 [IconFont](https://www.iconfont.cn/)、[Font Awesome](https://fontawesome.com/) 或设计团队获取的 `.ttf` 图标文件。 ### 🔧 步骤 1:准备图标字体文件 假设你有一个名为 `myicons.ttf` 的图标字体文件。 ### 📁 步骤 2:将字体文件放入项目资源目录 ``` your_project/ ├── pubspec.yaml ├── assets/ │ └── fonts/ │ └── myicons.ttf ← 放在这里 └── lib/ ``` > 建议路径:`assets/fonts/` ### 📄 步骤 3:在 `pubspec.yaml` 中注册字体 ```yaml flutter: fonts: - family: MyIcons # 自定义字体族名称 fonts: - asset: assets/fonts/myicons.ttf ``` ✅ 注意缩进!`flutter:` 下面是 `fonts:`,前面不要有空格错误。 ### 🔤 步骤 4:确认图标的 Unicode 编码 你需要知道每个图标对应的 Unicode 码点(比如 `\uE001`)。通常由设计师提供,或通过工具查看 TTF 字体字符映射。 例如: - 首页图标 → `\uE001` - 设置图标 → `\uE002` > 💡 提示:可以用在线工具如 [FontDrop](https://fontdrop.info/) 打开 `.ttf` 查看所有图标及其 Unicode。 ### 🎨 步骤 5:在代码中使用图标 ```dart Icon( IconData(0xE001, fontFamily: 'MyIcons'), size: 24, color: Colors.blue, ) ``` 或者封装成常量类更清晰: ```dart class MyIcons { static const IconData home = IconData(0xE001, fontFamily: 'MyIcons'); static const IconData settings = IconData(0xE002, fontFamily: 'MyIcons'); } ``` 然后使用: ```dart Icon(MyIcons.home) ``` --- ## ✅ 方法三:使用矢量 SVG 图标(替代方案) 如果你有 `.svg` 格式的图标,可以使用 [`flutter_svg`](https://pub.dev/packages/flutter_svg) 包。 ### 安装依赖: ```yaml dependencies: flutter_svg: ^latest_version ``` ### 添加 SVG 文件: ``` assets/icons/home.svg ``` 并在 `pubspec.yaml` 中声明: ```yaml flutter: assets: - assets/icons/home.svg ``` ### 使用: ```dart SvgPicture.asset('assets/icons/home.svg', width: 24, height: 24) ``` > ✅ 优势:支持彩色图标、高清缩放 > ❌ 缺点:无法像 `Icon` 一样轻松设置颜色(除非使用 `colorFilter`) --- ## ✅ 推荐工作流总结 | 步骤 | 操作 | |------|------| | 1 | 获取 `.ttf` 图标字体文件(或生成一个) | | 2 | 放入 `assets/fonts/` 目录 | | 3 | 在 `pubspec.yaml` 中注册字体 | | 4 | 查找图标 Unicode 码点 | | 5 | 使用 `IconData(code, fontFamily: 'MyIcons')` 显示图标 | | 6 | (可选)封装为静态类便于调用 | --- ## 🛠 高级技巧:自动生成 IconData 类(提升效率) 你可以使用工具自动生成 Dart 图标类,比如: - [icon_font_generator](https://pub.dev/packages/icon_font_generator) - [FlutterIcon](https://www.fluttericon.com/)(上传 SVG 自动生成字体 + Dart 代码) 这些工具会为你生成完整的 `.ttf` 和对应的 Dart 枚举或类,极大简化流程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值