当前位置:首页 > 农业机械 > 正文

「Flutter 专题」125 图解自传 ACE_ICON.ttf 图标库

小菜在学习过程中通常会需要大量的小图标,而多数的Icon都是经过设计同学优化过的,而如何采用类似系统Icons方式,此时可以通过自传类似字体库的ttf图标库的方式来完成;ACE_ICON小菜推荐两个网站可以用来生成图标库;1.生成ACE_图标库小菜以为例来生成图标库;在这个图标库中有很多成套的图标,...

小菜在学习过程中通常会需要大量的小图标,而多数的Icon都是经过设计同学优化过的,而如何采用类似系统Icons方式,此时可以通过自传类似字体库的ttf图标库的方式来完成;ACE_ICON小菜推荐两个网......

小菜在学习过程中通常会需要大量的小图标,而多数的Icon都是经过设计同学优化过的,而如何采用类似系统Icons方式,此时可以通过自传类似字体库的ttf图标库的方式来完成;

ACE_ICON

小菜推荐两个网站可以用来生成图标库;

1.生成ACE_图标库

小菜以为例来生成图标库;在这个图标库中有很多成套的图标,在这里可以选中需要的图标,也可以将本地生成的.svg文件拖拽进库中;

其中设置完图标库名称后,通过工具选择下载不同的文件,包括ttf图标库、config配置文件以及mapping映射文件;

2.集成ttf图标库

将ACE_库文件添加到project资源文件中;

在文件中声明ACE_文件库;声明方式与字体库等一致,注意family与font名称一致;在此可以声明引入多个资源库文件;之后pubget即可;

fonts:-family:DancingScriptfonts:-asset:assets/:ACE_ICONfonts:-asset:images/ACE_

将mapping文件添加到project中,用于映射ACE_ICON图标库中各Icons文件;

classACE_ICON{ACE_ICON._();staticconst_kFontFam='ACE_ICON';staticconstString_kFontPkg=null;staticconstIconDataemo_happy=IconData(0xe800,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_wink=IconData(0xe801,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_unhappy=IconData(0xe802,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_sleep=IconData(0xe803,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_thumbsup=IconData(0xe804,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_devil=IconData(0xe805,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_surprised=IconData(0xe806,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_tongue=IconData(0xe807,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_coffee=IconData(0xe808,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_sunglasses=IconData(0xe809,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_displeased=IconData(0xe80a,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_beer=IconData(0xe80b,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_grin=IconData(0xe80c,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_angry=IconData(0xe80d,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_saint=IconData(0xe80e,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_cry=IconData(0xe80f,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_shoot=IconData(0xe810,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_squint=IconData(0xe811,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_laugh=IconData(0xe812,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDataemo_wink2=IconData(0xe813,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatabook_story=IconData(0xe814,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatabook_type=IconData(0xe815,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatabook_user=IconData(0xe816,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatacrown=IconData(0xe844,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatacrown_plus=IconData(0xe845,fontFamily:_kFontFam,fontPackage:_kFontPkg);staticconstIconDatacrown_minus=IconData(0xe846,fontFamily:_kFontFam,fontPackage:_kFontPkg);}
3.图标库IconData

集成之后,使用方式与默认的Icon一致,直接获取IconData即可,对于Icon的颜色尺寸等其他绘制也不会有影响;

ListaceIconData=[ACE__story,ACE__type,ACE__user,ACE_,ACE__minus,ACE__plus,ACE__angry,ACE__beer,ACE__coffee,ACE__cry,ACE__devil,ACE__displeased,ACE__grin,ACE__happy,ACE__laugh,ACE__saint,ACE__shoot,ACE__sleep,ACE__squint,ACE__sunglasses,ACE__surprised,ACE__thumbsup,ACE__tongue,ACE__unhappy,ACE__wink,ACE__wink2];returnSliverPadding(padding:(8.0),sliver:SliverGrid(gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount:6,mainAxisSpacing:8.0,crossAxisSpacing:8.0,childAspectRatio:1.0),delegate:SliverChildBuilderDelegate((context,index)=Container(decoration:BoxDecoration(color:(0.2),borderRadius:(3.0)),child:Center(child:Icon(dataList[index],color:(0.6)))),childCount:)));

4.异常注意

小菜在测试过程中,会显示如下图所示,Icon资源展示不出来,其原因是小菜在文件声明时换行空格导致的,注意在引入所有资源库文件时,都应严格遵守声明格式;

Flutter版本分支切换

Flutter一直在稳定快速地更新迭代,而为了项目的稳定性,以及一些三方插件的应用,我们可能不会直接升级到最新版本,此时就需要切换分支,回退固定版本;小菜简单整理一下常用的几个命令行;

1.flutterchannel

flutterchannel用于查看渠道,官方分为stable、beta、dev、master四种,小菜推荐是用stable稳定版;此时,小菜建议在操作命令行指令时先进入flutter目录中;

2.flutterchannelX

在获取官方的各个分支之后,通过flutterchannelstable用于切换到stable或其他分支;

3.gittag

gittag用于查看Flutter各版本号;

4.gitcheckout(version)

用于切换固定Flutter版本分支;

5.gitreset--hard(version)

用于指向对应版本分支;

6.flutterversion(version)

用于升级或回退到指定Flutter版本分支;

7.flutter--version

flutter--version用于查看当前使用的版本,可以通过--version进行版本更新或回退后验证;

ACE_案例源码

小菜此次仅是对于日常资源库和命令行的简单应用,熟能生巧,仅限于日常积累;如有错误,请多多指导!

最新文章