本篇文章来记录下FontAweSome 在Android开发中的使用
效果
下载FontAweSome字体
首先,要去下载fontAweSome字体。百度一下就可以找到,如果你找不到,请点击这里下
在工程中使用
将下载好的.ttf文件放入assets中
布局
1 | <?xml version="1.0" encoding="utf-8"?> |
可以看到布局文件中使用的TextView引用的外部string.可以是strings.xml文件也可以是你再values文件夹中新建的.xml文件。
至于这个字符串怎么找的,可以去fontawesome的图标网上找到对应图标的字符串。1
2
3
4
5<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="fa_chart"></string>
<string name="fa_info"></string>
</resources>
代码中:
1 | Typeface font = Typeface.createFromAsset(getAssets(),"fontawesome-webfont.ttf"); |
可以这样写。
但是如果控件比较多的话,那么就稍微有些麻烦。这里通过FontManager类来统一设置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25/**
* Created by Kevin on 2018/7/9.
* <p>
* Blog:http://student9128.top/
* CSDN:https://blog.csdn.net/student9128
* <p/>
*/
public class FontManager {
public static void fontIcon(View v, Context context) {
Typeface typeface = Typeface.createFromAsset(context.getAssets(), "fontawesome-webfont" +
".ttf");
if (v instanceof ViewGroup) {
for (int i=0;i<((ViewGroup) v).getChildCount();i++) {
View child = ((ViewGroup) v).getChildAt(i);
fontIcon(child,context);
}
} else if (v instanceof TextView) {
((TextView) v).setTypeface(typeface);
} else if (v instanceof Button) {
((Button) v).setTypeface(typeface);
} else if (v instanceof EditText) {
((EditText) v).setTypeface(typeface);
}
}
}
使用方法:1
2LinearLayout llContainer = findViewById(R.id.ll_container);
FontManager.fontIcon(llContainer,this);