-
-
Notifications
You must be signed in to change notification settings - Fork 848
字体图标
xuexiangjys edited this page Oct 28, 2019
·
1 revision
一个能非常方便加载字体图标的库。项目地址: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>;
}