Skip to content

字体图标

xuexiangjys edited this page Oct 28, 2019 · 1 revision

Android-Iconics

一个能非常方便加载字体图标的库。项目地址:https://github.com/mikepenz/Android-Iconics

如何引用

1.在主项目的 build.gradle 中增加依赖。

dependencies {
    ···
    //图标库
    implementation "com.mikepenz:iconics-core:4.0.1-b02"
    //图标库控件(可选)
    implementation "com.mikepenz:iconics-views:4.0.1-b02"
}

2.在Application中的onCreate方法中进行初始化和自定义图标字体的注册。

//字体图标库
Iconics.init(this);
//这是自己定义的图标库
Iconics.registerFont(new XUIIconFont());

如何使用

1.直接使用IconicsDrawable加载

IconicsDrawable drawable = new IconicsDrawable(getContext())
        .icon(XUIIconFont.Icon.xui_emoj)
        .color(IconicsColor.colorInt(ThemeUtils.resolveColor(getContext(), R.attr.colorAccent)))
        .size(IconicsSize.dp(24));
ivFont.setImageDrawable(drawable);

2.使用字体加载

(1)需要在当前页注册一下图标字体

@Override
protected void attachBaseContext(Context newBase) {
   //注入字体方法1
   super.attachBaseContext(IconicsContextWrapper.wrap(newBase));
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    //注入字体方法2,兼容性更好
    LayoutInflaterCompat.setFactory(getLayoutInflater(), new IconicsLayoutInflater(getDelegate()));
    super.onCreate(savedInstanceState);
}

(2)设置标识符

xiivFont.setIconText("emoj");

//TextView一定要注入字体,否则无法生效,字体注入方法详见 com.xuexiang.xuidemo.widget.iconfont.IconFontActivity类
tvFont.setText("{xui_emoj}");

自定义字体图标库

详细参见XUIIconFont

混淆配置

-keep class .R
-keep class **.R$* {
    <fields>;
}
Clone this wiki locally