flutter中使用图标(含自制图标库方案)
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 ID为format_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 Illustrator
、Inkscape
等软件绘制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中使用图标(含自制图标库方案)相关推荐
- Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家.
- vue引入阿里巴巴图标(含彩色图标)
第一步:下载阿里巴巴图标库的资源到本地. 第二步:在自己的assets创建一个icon文件,然后把下载的东西选择放进去. 第三步:在main.js引入 import './assets/icon/ic ...
- el-table 树形表格 自定义展开图标_超级好用,如何上传自制图标到iSlide图标库...
iSlide有很多被忽略的好功能 比如上传功能 用户可上传本地文件到 iSlide图片库.图标库,上传成功的文件可一键插入PPT,图片插入不变形 所有上传的素材仅自己可见 大家常用的是图片上传 却很少 ...
- 在vue项目中使用第三方的字体图标库
如何在vue项目中使用第三方的字体图标库 以在vue项目中导入阿里字体图标库为例 1.打开阿里字体图标库的官方网址 https://www.iconfont.cn/?spm=a313x.7781069 ...
- Vue项目中,引入阿里矢量图标库
Vue项目中,引入阿里矢量图标库 (1)阿里矢量图标库地址(需要登录): https://www.iconfont.cn (2)找到自己心仪的图标: (3)添加入库: (4)点击购物车图标(免费的哦) ...
- element 日期选择图标_更换 App 图标,自制透明小组件!这可能是最全的 iPhone 桌面美化指南...
说到个性化手机,你会想到换主题.换图标这些方法,不论是小清新还是偶像派,喜欢什么你就换什么.可如果你是 iPhone 用户,除了更换壁纸,也就能想想修改 app 文件夹名称了.Android 手机拥有 ...
- 【Flutter】Icons 组件 ( FlutterIcon 下载图标 | 自定义 svg 图标生成 ttf 字体文件 | 使用下载的 ttf 图标文件 )
文章目录 一.FlutterIcon 下载图标 二.自定义 svg 图标生成 ttf 字体文件 三.使用下载的 ttf 图标文件 四.完整代码示例 五.相关资源 一.FlutterIcon 下载图标 ...
- 【Flutter】Icons 组件 ( 加载 Flutter 内置的图标 | 材料设计图标完整展示 )
文章目录 一.加载 Flutter 内置的图标 三.完整代码示例 三.相关资源 四.Icons 图标参考 ( 超长截图 | 材料设计图标完整展示 ) 一.加载 Flutter 内置的图标 Flutte ...
- Axure移动端通用元件库rplib格式包含安卓、苹果各种主流手机、平板线框图元件库、IOS系统图标、人物图标、导航和分页、表格元素、各种小图标等
包含安卓.苹果各种主流手机.平板线框图元件库.IOS系统图标.人物图标.导航和分页.表格元素.各种小图标等 1.本作品由完整演示.元件库版.框架模板三部分组成 • 完整演示的.rp格式文件包含了全部元 ...
最新文章
- solr java score_Solr 按照得分score跟指定字段相乘排序
- Spark RPC框架源码分析(二)RPC运行时序
- gitlab在centons环境下的安装及使用
- linux批量去掉文件名前缀,linux 批量删除某个前缀文件
- XML 反序列化为Model
- python小练——下载指定url中的图片
- 【BZOJ-1097】旅游景点atr SPFA + 状压DP
- error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
- Handheld Group推出Algiz平板,内置RFID读取器
- 苹果耳机无线真假测试软件,辨别苹果耳机真伪,看完这篇就够了
- 人工智能数学基础--概率与统计9:概率运算、加法公理、事件的独立性、概率乘法定理、条件概率、全概率公式以及贝叶斯公式
- 用计算机遥感技术图片,遥感图像处理
- 北航论文模板:解决XeLaTeX中Font shape'TU/SimSun(1)/b/n' undefined(font) using 'TU/SimSun(1)/m/n' instead
- 计算机无法安装网卡驱动,win7网卡驱动安装不了怎么修复_WIN7网卡驱动装不上如何解决...
- PowerDesigner 下载地址
- Python标记函数或类为废弃(deprecated)并在Pychram或Idea中检测提示删除线
- 台式电脑计算机怎么看是固态硬盘,怎么看电脑是机械硬盘还是固态硬盘
- 文本框导入图片并显示到页面上
- dz后台html,建立discuz后台管理页面的模板
- 猎豹追击野兔matlab建模,猎豹捕捉野兔,要说比直线速度,谁能赢过猎豹呢?
热门文章
- 【廖雪峰官方网站/Java教程】泛型
- 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令
- OpenCV图像的编解码读取
- springmvc web.xml和application.xml配置详情(附:完整版pom.xml)
- Salesforce LWC学习(二) helloWorld程序在VSCode中的实现
- 深入理解JVM-类加载器深入解析(3)
- ThinkPHP5.0-多语言切换
- 结对作业_core组
- 正则表达式的学习使用
- 开发LED屏幕页面遇到的问题