Android中传统的显示图标的方式
在平常的开发中,如果我们需要在界面上显示某个小图标,比如搜索按钮,返回按钮,这时我们需要美工给我们切对应的png图片,并放进对应的drawable文件夹中,这样随着图标的越来越多,APK体积也会越来越大。
什么是Font Awesome
Font Awesome是一个专为Bootstrap设计的字体文件,我们可以通过向显示字体一样方便的显示我们想要显示的图标。对于Android,Font Awesome使用TextView显示小图标,而且无需使用png图片,只需使用一个ttf文件,并且在这些字体中的图片都是矢量图,是可以放大和缩小的,这就意味着每个图标都能在所有大小的屏幕上完美呈现。
Font Awesome的优点和缺点
优点
- 只需使用一个ttf文件,无需美工切png图,大大减小了apk体积,你可以骄傲的对美工MM说,这些图标都包在我身上了,你只要喝喝咖啡就行了(崇拜的眼光已经投过来)。
- 可以自己设置颜色,大小。Font Awesome使用TextView显示图标,你可以像设置字体颜色和大小一样,设置这个图标,可以起到很好的适配作用(妈妈再也不用担心我的适配问题)。
缺点
- 图标有限,很难满足所有的需求,但是可以结合传统的切图方式。
那么重点来了,怎么使用呢
1. 下载Font Awesome,在此双手奉上下载好的文件fontawesome-webfont.ttf\
2. 把下载后的fontawesome-webfont.ttf放到assets文件夹中(不知道在哪?你可以转行了!)
3. 编写string.xml,可以在http://fontawesome.io/cheatsheet/#中查看图标对应的字符串(往下拉,你就看到了- -!),添加你想要的图标到string.xml中(你想要添加好的xml?抱歉我没有!想要哪张自己加呗),如下:
其中name值可以按照自己的命名规则取名
4. 编写布局,在TextView中使用该字符串,就可以显示对应的图标了,如下:
其中android:text引用你要显示的图标对应的string资源,android:textColor设置图标颜色,android:textSize设置图标大小(跟设置字体大小颜色一样样的)。
5. JAVA代码中引用
首先找到assets中的fontawesome-webfont.ttf,代码如下:
Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf");
然后为需要的TextView设置setTypeface(font)就可以了,代码如下:
TextView tvIcon= (TextView) findViewById(R.id.tv_icon);
tvIcon.setTypeface(font);