Iconify的大致流程原理

子车飞鹏
2023-12-01
  首先根据GitHub地址https://github.com/JoanZapata/android-iconify中的说明,把依赖项加到项目中
  一般加两项就够了
  dependencies {
      compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.2.2' // (v4.5)
      compile 'com.joanzapata.iconify:android-iconify-ionicons:2.2.2' // (v2.0.1)
  }
 总体上分:
       1.全局类Iconify
       2.管理具体字体图标库的Module类,比如FontAwesomeModule
       3.给ttf文件取名的枚举类Icon类
       4.包含了uicode以及如何显示字体图标的ttf文件
       5.使用字体图标的控件比如com.joanzapata.iconify.widget.IconTextView

之间大概的逻辑关系是:
最基础的是4中的ttf文件,ttf文件主要包含以Unicode编码的字体id和这个字体该如何显示的列表,这个在已经
打包好的类库,比如android-iconify-fontawesome中是已经预先包含在库里面的了,如果要使用自己定义的,需要
从网上下载相应字体图标的ttf文件,比如阿里巴巴矢量图标库中选择好想使用的图标后下载到本地会有一个对应
ttf文件
Icon类的主要作用是给ttf文件中Unicode定义一些名称,便于在控件中使用名称引用,比如
icon_scan(’\ue609’),本质上只是给代码取了个名字而已
FontAwesomeModule和自定义Module都需要实现 IconFontDescriptor接口,这个接口主要要实现两个
功能,一个关联ttf文件,一个是使用哪个Icon。
最后全局类Iconify管理所以的Module,使用类似 Iconify.with(new FontAwesomeModule())的方式,把
字体图标的Module都包含进来
这样在控件中,比如com.joanzapata.iconify.widget.IconTextView中的text属性中使用大括号加前面Icon中
定义的名字(android:text=“I {fa-heart-o} to {fa-code} on {fa-android}”),就能显示出对应的字体图标出来了

 类似资料: