它是一种字体图标, 可以将svg的图像保存以字体的形式保存到ttf中,ttf文件根据对应的unicode和图片资源关联, 通过csv文件维护一份 图片名字和unicode的mapping表和一个ttf格式的字体图标文件, 可以非常方便管理资源, 也不容易出现重复的内容, 一份文件可以支持多个平台使用
TTF
- TrueTypeFont)是Apple公司和Microsoft公司共同推出的字体文件格式.
代码中获取字体图标的方式
- 通过指定 ttf文件路径,ttf的familyName, 以及对应图标的unicode, 就能够获取到对应的字体图标
生成ttf图标
获取svg格式的图标,上传自iconfont生成的工具,国内比较好用的是 阿里的iconfont, 此外还有Immon, 根据官方文档提示将svg上传上去,然后下载得到ttf以及对应的 json文件, 将json文件的 iconName和unicode取出, 生成一个简单的映射表
以下是阿里导入svg后生成的资源列表
├── demo.css ├── demo_index.html
├── iconfont.css
├── iconfont.eot
├── iconfont.js
├── iconfont.json //包含图片名字和字体unicode的json
├── iconfont.svg
├── iconfont.ttf //字体图标文件
├── iconfont.woff
└── iconfont.woff2从
json
文件中提取出key-value(imageName-imageUnicode),然后将他们写入到模版dart文件中,和系统图标类似class MyCustomIcons { MyCustomIcons._();
static const IconData sleep = IconData(0x7777, fontFamily: 'MyCustomIconsFamily');
...