flutter中使用图标

简介: 本文介绍 flutter中使用图标(含自定义图标图)

flutter中使用图标(含自定义图标图)


作者jcLee95

已入驻阿里云社区

邮箱 :291148484@163.com
本文地址
- https://developer.aliyun.com/article/1212991
- https://blog.csdn.net/qq_28550263/article/details/123309530

相关文章推荐


目 录


1. 官方图标的使用

2. 自制字体图标库(能像官方图标那样使用)

附:(常用)使用图标徽章


1. 官方图标的使用

1.1 在Flutter中的使用方式

在Flutter中,官方图标库已经为我们提供了足够多的字体图标可以直接使用之,每一个官方图标都有一个唯一的标识码,它们都是Icons类的一个静态属性。我们使用Icons.xxx(xxx表示某个图标的 Flutter ID)来指定图标,并将其作为Icon类的参数。

import 'package:flutter/material.dart';
Icon(
  Icons.format_list_bulleted,
),

Icon类的接口为具有如下属性:

属性 类型 描述
color Color? 绘制图标时使用的颜色。
hashCode int 要显示的图标。
icon IconData? 要显示的图标。
key Key? 控制一个部件如何替换树中的另一个部件。
runtimeType Type 对象运行时类型的表示形式。
semanticLabel String? 图标的语义标签。
size double? 以逻辑像素为单位的图标大小。
textDirection TextDirection? 用于呈现图标的文本方向。

另一个例子是:

Row(
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: const <Widget>[
    Icon(
      Icons.favorite,
      color: Colors.pink,
      size: 24.0,
      semanticLabel: 'Text to announce in accessibility modes',
    ),
    Icon(
      Icons.audiotrack,
      color: Colors.green,
      size: 30.0,
    ),
    Icon(
      Icons.beach_access,
      color: Colors.blue,
      size: 36.0,
    ),
  ],
)

1.2 图标查询

以下图标名使用时,如Format List Numbered,对应的 Flutter IDformat_list_numbered

1.2.1 Action

6666666666666.png

1.2.2 Navigation

6666666666666.png

1.2.3 Social

6666666666666.png

6666666666666.png

6666666666666.png

6666666666666.png

1.2.4 Content

6666666666666.png

6666666666666.png


1.2.5 Image

6666666666666.png

6666666666666.png

6666666666666.png

6666666666666.png

1.2.6 Communication

6666666666666.png

6666666666666.png

1.2.7 File

6666666666666.png

1.2.8 Maps

6666666666666.png

6666666666666.png

6666666666666.png

6666666666666.png

1.2.9 Audio & Video

6666666666666.png

6666666666666.png

1.2.10 Toggle

6666666666666.png

1.2.11 Alert

6666666666666.png

1.2.12 Editor

6666666666666.png

6666666666666.png

1.2.13 Notification

6666666666666.png

6666666666666.png

1.2.14 Hardware

6666666666666.png

6666666666666.png

1.2.15 Device

6666666666666.png

6666666666666.png

6666666666666.png

6666666666666.png

1.2.16 Search

6666666666666.png

1.2.17 Places

6666666666666.png

1.2.18 Home

6666666666666.png

2. 自制字体图标库(能像官方图标那样使用)

2.1 绘制图标图像

可以使用Adobe IllustratorInkscape等软件绘制SVG格式的图标。也可以上一些网站下载SVG矢量图标,如阿里矢量图标库谷歌矢量图标库等等:

6666666666666.png

2.2 生成字体文件

可以借助一些方便的在线工具直接生成,如:IcoMoonhttps://icomoon.io/

6666666666666.png

点击Import Icons导入你需要制作成字体图标的SVG图片:

6666666666666.png

完成后点击 Generate Font,点击 **Download**下载你的字体文件:

6666666666666.png

2.3 将图标字体引入Flutter项目

打开我们的flutter项目,建立assets目录,在其下建立``子目录iconfonts

6666666666666.png

6666666666666.png

将字体文件解压到iconfonts子目录下,所需要的字体文件在其中的fonts目录下:

6666666666666.png

6666666666666.png


将该文件引入 **pubspec.yaml**文件:

6666666666666.png


2.4 封装成图标库

// jcicons.dartimport'package:flutter/foundation.dart'showdefaultTargetPlatform;
import'package:flutter/widgets.dart';
classPlatformAdaptiveIconsimplementsJCIcons {
constPlatformAdaptiveIcons._();
staticbool_isCupertino() {
switch (defaultTargetPlatform) {
caseTargetPlatform.android:
caseTargetPlatform.fuchsia:
caseTargetPlatform.linux:
caseTargetPlatform.windows:
returnfalse;
caseTargetPlatform.iOS:
caseTargetPlatform.macOS:
returntrue;
    }
  }
}
classJCIcons {
JCIcons._();
staticPlatformAdaptiveIconsgetadaptive=>constPlatformAdaptiveIcons._();
staticconstIconDatame=IconData(0xecb5, fontFamily: 'jcicon');
staticconstIconDatafriend=IconData(0xecb6, fontFamily: 'jcicon');
staticconstIconDatanew_=IconData(0xecb7, fontFamily: 'jcicon');
staticconstIconDatanews=IconData(0xecb8, fontFamily: 'jcicon');
// ...继续列出你的图标}

2.5 使用你自己封装的图标库

导入你的图标库:

// 依据你实际项目中的位置决定import'../jcicon.dart';

使用你的图标:

Icon(
JCIcons.me, // 对比:如果使用的是官方图标库,则此处形式为 Icons.xxxsize: 24.0,
),

附 使用图标徽章

效果

6666666666666.png

demo code

Badge(
badgeContent: Text("9"),
child: Icon(
Icons.access_time,
  )
)

场景

往往应用于需要进行提示的场景,如时钟提示最近的事项,通讯录提示未读好友消息的数目等等。

安装

flutter pub add badges

安装完成后再你的项目的pubspec.yaml文件中增加了如下依赖:

dependencies:  badges: ^2.0.2

导入和使用

基本使用

import'package:badges/badges.dart';
// ...某个位置Badge(
badgeContent: Text('3'),
child: Icon(Icons.settings),
    )

使用动画

动画 效果
BadgeAnimationType.slide

777777777777777.gif

BadgeAnimationType.scale

777777777777777.gif

BadgeAnimationType.fade

777777777777777.gif

目录
相关文章
|
7月前
|
iOS开发 UED
Flutter 动态修改应用图标功能指南
探索Flutter中动态应用图标的实现方法,了解如何为用户提供独特体验,促进用户升级和应用内购买。
222 0
Flutter 动态修改应用图标功能指南
|
5月前
|
敏捷开发 前端开发 程序员
Hugeicons Flutter 图标库 | 4000+ 开源免费
在全栈开发的征途中,设计素材的匮乏往往是程序员的一大挑战,尤其是那些为MVP产品增添魅力的元素,比如图标(icons)。 一个优秀的免费图标库,对于快速搭建原型、优化视觉效果至关重要。今天,让我们聚焦于Flutter开发者的一个福音——Hugeicons图标库,它蕴藏着超过4000枚精心设计的图标,为你的应用程序注入无限创意潜力。
135 0
Hugeicons Flutter 图标库 | 4000+ 开源免费
|
5月前
flutter 导航组件 AppBar (含顶部选项卡TabBar,抽屉菜单 drawer ,自定义导航图标)
flutter 导航组件 AppBar (含顶部选项卡TabBar,抽屉菜单 drawer ,自定义导航图标)
99 1
|
5月前
Flutter-仿淘宝京东录音识别图标效果
Flutter-仿淘宝京东录音识别图标效果
33 0
|
7月前
|
前端开发 开发者 UED
【Flutter前端技术开发专栏】Flutter中的图标、字体与样式管理
【4月更文挑战第30天】本文介绍了在Flutter中管理图标、字体和样式的做法。Flutter提供`Icons`类用于内置矢量图标,支持第三方图标库如FontAwesome。自定义字体可通过添加字体文件至`assets`目录并配置`pubspec.yaml`,然后使用`TextStyle`设置。借助`ThemeData`,开发者能统一管理应用主题样式,局部样式可覆盖全局。通过集中管理样式,提升代码复用性和应用一致性。
189 0
【Flutter前端技术开发专栏】Flutter中的图标、字体与样式管理
|
7月前
|
运维 监控 定位技术
应用研发平台EMAS常见问题之flutter插件不支持自定义图标如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
139 0
|
7月前
|
前端开发
Flutter笔记:光影动画按钮、滚动图标卡片组等
Flutter笔记:光影动画按钮、滚动图标卡片组等
88 0
|
7月前
flutter中使用图标(含自制图标库方案)
flutter中使用图标(含自制图标库方案)
1835 0
|
Dart
Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(中)
完全基于Flutter绘图技术绘制一个精美的Dash图标(中)
82 0
|
Dart
Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(上)
完全基于Flutter绘图技术绘制Dart语言吉祥物(Dash)-上
68 0