什么是iconFont
- iconFont顧名思義是字體圖標(biāo),圖標(biāo)就藏在字體文件里面,看著是個圖標(biāo),其實卻是個文字,這就是所謂的icon font。
- iconFont是矢量圖標(biāo)
iconFont優(yōu)缺點
- 優(yōu)點
1.由于IconFont是矢量圖標(biāo),所以可以輕松解決圖標(biāo)適配問題
2.圖標(biāo)以字體文件的形式存在項目中(.ttf文件一般放在assets文件夾下),體積小可以減小APK的體積。
3.一套圖標(biāo)資源可以在不同平臺使用(android ,ios,web)
4.資源維護(hù)方便。
- 缺點
1.需要自定義svg圖片,并將其轉(zhuǎn)換為ttf文件,圖標(biāo)制作成本比較高
2.添加圖標(biāo)是需要重新制作ttf文件
3.只能支持單色(不支持漸變色圖標(biāo))
- 通過以上的利弊分析,IconFont還是很值得我們使用的,大家可能擔(dān)心制作問題,但是我覺得沒有必要,因為我們有
阿里巴巴矢量圖標(biāo)庫
,基本的圖標(biāo)我們都可以找到,最重要的是阿里巴巴矢量圖標(biāo)庫
支持IconFont
,所以我們這些開發(fā)者就不用擔(dān)心制作的問題啦。
IconFont在android端的使用
終于來到正文啦,那我們就看看iconfont如何使用吧!
- iconfont.ttf文件
iconfont圖標(biāo)
-
使用FontLab studio 5查看iconfont.ttf文件
iconfont.ttf文件內(nèi)容 代碼片段
//我這里的圖標(biāo)文件是iconfont.ttf(目錄:assets/fonts/iconfont.ttf)
TextView tv1=(TextView)findViewById(R.id.xxxx);
Typeface typeface=Typeface.createFromAsset(getAssets(),
"fonts/iconfont.ttf");
tv1.setTypeface(typeface);
//設(shè)置圖標(biāo)(對應(yīng)上面的點贊圖標(biāo))(Unicode編碼)
tv1.setText("\ue600");
- 剩下的就是和正常使用TextView沒有什么區(qū)別了,顏色切換,大小設(shè)置等。(文章的最后會貼上阿里巴巴矢量圖庫使用教程)
效果圖
iconfont-screen.gif
iconfont-screen.gif
Demo代碼片段
- layout布局文件
<TextView
android:id="@+id/main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:textColor="@color/text_color_selector" />
- color/text_color_selector 文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@android:color/darker_gray" android:state_pressed="true"/>
<item android:color="@android:color/holo_blue_bright"/>
</selector>
github上也有IconFont支持庫
- Android-Iconics
- 這個庫功能更全,喜歡的可以試試。
覺得不錯點個贊唄~哈哈
參考文章
淺談矢量圖形前景
知乎回答IconFont
Icon Font --Android圖標(biāo)也能輕松換膚
如何在移動設(shè)備上應(yīng)用iconfont