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


作者jcLee95
邮箱 :291148484@163.com
CSDN 主页https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343
本文地址https://blog.csdn.net/qq_28550263/article/details/123309530

相关文章推荐


目 录


1. 官方图标的使用

  • 1.1 在Flutter中的使用方式
  • 1.2 图标查询
    • 1.2.1 Action
    • 1.2.2 Navigation
    • 1.2.3 Social
    • 1.2.4 Content
    • 1.2.5 Image
    • 1.2.6 Communication
    • 1.2.7 File
    • 1.2.8 Maps
    • 1.2.9 Audio & Video
    • 1.2.10 Toggle
    • 1.2.11 Alert
    • 1.2.12 Editor
    • 1.2.13 Notification
    • 1.2.14 Hardware
    • 1.2.15 Device
    • 1.2.16 Search
    • 1.2.17 Places
    • 1.2.18 Home

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

  • 2.1 绘制图标图像
  • 2.2 生成字体文件
  • 2.3 将图标字体引入Flutter项目
  • 2.4 封装成图标库
  • 2.5 使用你自己封装的图标库

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


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

1.2.2 Navigation

1.2.3 Social



1.2.4 Content


1.2.5 Image




1.2.6 Communication

1.2.7 File

1.2.8 Maps




1.2.9 Audio & Video


1.2.10 Toggle

1.2.11 Alert

1.2.12 Editor

1.2.13 Notification


1.2.14 Hardware


1.2.15 Device




1.2.16 Search

1.2.17 Places

1.2.18 Home

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

2.1 绘制图标图像

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

2.2 生成字体文件

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

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


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

2.3 将图标字体引入Flutter项目

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



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


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

2.4 封装成图标库

// jcicons.dart
import 'package:flutter/foundation.dart' show defaultTargetPlatform;
import 'package:flutter/widgets.dart';class PlatformAdaptiveIcons implements JCIcons {const PlatformAdaptiveIcons._();static bool _isCupertino() {switch (defaultTargetPlatform) {case TargetPlatform.android:case TargetPlatform.fuchsia:case TargetPlatform.linux:case TargetPlatform.windows:return false;case TargetPlatform.iOS:case TargetPlatform.macOS:return true;}}
}class JCIcons {JCIcons._();static PlatformAdaptiveIcons get adaptive => const PlatformAdaptiveIcons._();static const IconData me = IconData(0xecb5, fontFamily: 'jcicon');static const IconData friend = IconData(0xecb6, fontFamily: 'jcicon');static const IconData new_ = IconData(0xecb7, fontFamily: 'jcicon');static const IconData news = IconData(0xecb8, fontFamily: 'jcicon');// ...继续列出你的图标
}

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

导入你的图标库:

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

使用你的图标:

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

附 使用图标徽章

效果


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
BadgeAnimationType.scale
BadgeAnimationType.fade

flutter中使用图标(含自制图标库方案)相关推荐

  1. Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题

    前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家.

  2. vue引入阿里巴巴图标(含彩色图标)

    第一步:下载阿里巴巴图标库的资源到本地. 第二步:在自己的assets创建一个icon文件,然后把下载的东西选择放进去. 第三步:在main.js引入 import './assets/icon/ic ...

  3. el-table 树形表格 自定义展开图标_超级好用,如何上传自制图标到iSlide图标库...

    iSlide有很多被忽略的好功能 比如上传功能 用户可上传本地文件到 iSlide图片库.图标库,上传成功的文件可一键插入PPT,图片插入不变形 所有上传的素材仅自己可见 大家常用的是图片上传 却很少 ...

  4. 在vue项目中使用第三方的字体图标库

    如何在vue项目中使用第三方的字体图标库 以在vue项目中导入阿里字体图标库为例 1.打开阿里字体图标库的官方网址 https://www.iconfont.cn/?spm=a313x.7781069 ...

  5. Vue项目中,引入阿里矢量图标库

    Vue项目中,引入阿里矢量图标库 (1)阿里矢量图标库地址(需要登录): https://www.iconfont.cn (2)找到自己心仪的图标: (3)添加入库: (4)点击购物车图标(免费的哦) ...

  6. element 日期选择图标_更换 App 图标,自制透明小组件!这可能是最全的 iPhone 桌面美化指南...

    说到个性化手机,你会想到换主题.换图标这些方法,不论是小清新还是偶像派,喜欢什么你就换什么.可如果你是 iPhone 用户,除了更换壁纸,也就能想想修改 app 文件夹名称了.Android 手机拥有 ...

  7. 【Flutter】Icons 组件 ( FlutterIcon 下载图标 | 自定义 svg 图标生成 ttf 字体文件 | 使用下载的 ttf 图标文件 )

    文章目录 一.FlutterIcon 下载图标 二.自定义 svg 图标生成 ttf 字体文件 三.使用下载的 ttf 图标文件 四.完整代码示例 五.相关资源 一.FlutterIcon 下载图标 ...

  8. 【Flutter】Icons 组件 ( 加载 Flutter 内置的图标 | 材料设计图标完整展示 )

    文章目录 一.加载 Flutter 内置的图标 三.完整代码示例 三.相关资源 四.Icons 图标参考 ( 超长截图 | 材料设计图标完整展示 ) 一.加载 Flutter 内置的图标 Flutte ...

  9. Axure移动端通用元件库rplib格式包含安卓、苹果各种主流手机、平板线框图元件库、IOS系统图标、人物图标、导航和分页、表格元素、各种小图标等

    包含安卓.苹果各种主流手机.平板线框图元件库.IOS系统图标.人物图标.导航和分页.表格元素.各种小图标等 1.本作品由完整演示.元件库版.框架模板三部分组成 • 完整演示的.rp格式文件包含了全部元 ...

最新文章

  1. solr java score_Solr 按照得分score跟指定字段相乘排序
  2. Spark RPC框架源码分析(二)RPC运行时序
  3. gitlab在centons环境下的安装及使用
  4. linux批量去掉文件名前缀,linux 批量删除某个前缀文件
  5. XML 反序列化为Model
  6. python小练——下载指定url中的图片
  7. 【BZOJ-1097】旅游景点atr SPFA + 状压DP
  8. error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
  9. Handheld Group推出Algiz平板,内置RFID读取器
  10. 苹果耳机无线真假测试软件,辨别苹果耳机真伪,看完这篇就够了
  11. 人工智能数学基础--概率与统计9:概率运算、加法公理、事件的独立性、概率乘法定理、条件概率、全概率公式以及贝叶斯公式
  12. 用计算机遥感技术图片,遥感图像处理
  13. 北航论文模板:解决XeLaTeX中Font shape'TU/SimSun(1)/b/n' undefined(font) using 'TU/SimSun(1)/m/n' instead
  14. 计算机无法安装网卡驱动,win7网卡驱动安装不了怎么修复_WIN7网卡驱动装不上如何解决...
  15. PowerDesigner 下载地址
  16. Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线
  17. 台式电脑计算机怎么看是固态硬盘,怎么看电脑是机械硬盘还是固态硬盘
  18. 文本框导入图片并显示到页面上
  19. dz后台html,建立discuz后台管理页面的模板
  20. 猎豹追击野兔matlab建模,猎豹捕捉野兔,要说比直线速度,谁能赢过猎豹呢?

热门文章

  1. 【廖雪峰官方网站/Java教程】泛型
  2. 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令
  3. OpenCV图像的编解码读取
  4. springmvc web.xml和application.xml配置详情(附:完整版pom.xml)
  5. Salesforce LWC学习(二) helloWorld程序在VSCode中的实现
  6. 深入理解JVM-类加载器深入解析(3)
  7. ThinkPHP5.0-多语言切换
  8. 结对作业_core组
  9. 正则表达式的学习使用
  10. 开发LED屏幕页面遇到的问题