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

目录
相关文章
|
2天前
|
iOS开发 UED
Flutter 动态修改应用图标功能指南
探索Flutter中动态应用图标的实现方法,了解如何为用户提供独特体验,促进用户升级和应用内购买。
100 0
Flutter 动态修改应用图标功能指南
|
2天前
|
运维 监控 定位技术
应用研发平台EMAS常见问题之flutter插件不支持自定义图标如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
81 0
|
2天前
|
前端开发
Flutter笔记:光影动画按钮、滚动图标卡片组等
Flutter笔记:光影动画按钮、滚动图标卡片组等
42 0
|
2天前
flutter中使用图标(含自制图标库方案)
flutter中使用图标(含自制图标库方案)
198 0
|
5月前
|
Dart
Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(中)
完全基于Flutter绘图技术绘制一个精美的Dash图标(中)
47 0
|
5月前
|
Dart
Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(上)
完全基于Flutter绘图技术绘制Dart语言吉祥物(Dash)-上
38 0
|
9月前
Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题
Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题
68 0
|
Android开发 iOS开发
Flutter 修改应用名称、图标、启动页
Flutter 修改应用名称、图标、启动页
335 0
Flutter 修改应用名称、图标、启动页
|
Android开发 iOS开发 C++
Flutter中设置Android的应用名称和图标(android,ios,web)
在前面的几期给大家介绍了flutter的安装以及一些简单的配置,还运行了helloword 那么接下来就带领大家了解如何设置应用名称以及图标
246 0
|
Android开发 iOS开发 C++
Flutter设置App的应用名字和应用logo图标的方法(android ios web)
在前面的几期给大家介绍了flutter的安装以及一些简单的配置,还运行了helloword 那么接下来就带领大家了解如何设置应用名称以及图标 Flutter设置App的应用名字和应用logo图标的方法,
660 0
Flutter设置App的应用名字和应用logo图标的方法(android ios web)