Font-Awesome 是爲Bootstrap設計的一個圖標集合字體,裏面包含了300多個經常使用圖標。使用Font-Awesome還具備以下優勢:php
1. 減小了圖標的繪製工做css
2. 能夠設置圖標的顏色和大小html
3. 減小了圖標的大小而且能夠減小apk的大小,只須要一個圖標字體文件便可,不須要各類尺寸的圖標文件了,好比 HDPI、XHDPI等各類尺寸的圖標。java
Font-Awesome的使用方式
到Font-Awesome主頁下載Font-Awesome字體(fontawesome-webfont.ttf)文件並放到項目的assets目錄下,找到須要用的圖標對應的字符串(font-awsome-for-android 包含了一份圖標和字符串的對應文件,最新的對應關係在下載的Font-Awesome字體中的css目錄中的font-awesome.css文件中查找),在TextView中設置須要使用的圖標文字,而後設置TextView的字體爲自定義的Font-Awesome字體。android
例如:git
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
//在XML中使用
<TextView
android:id=
"@+id/textView1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/icon_credit_card"
android:textSize=
"50sp"
android:textColor=
"#F59012"
android:textAppearance=
"?android:attr/textAppearanceLarge"
/>
//或者在代碼中使用:
myTextView.setText(getString(R.string.icon_credit_card));
//而後設置自定義字體:
TextView txt = (TextView) findViewById(R.id.textView1);
Typeface font = Typeface.createFromAsset(getAssets(),
"fontawesome-webfont.ttf"
);
txt.setTypeface(font);
|
另外若是須要在使用Drawable的地方使用Font-Awesome圖標,則能夠自定義一個Drawable,而後在代碼中使用該Drawable,詳細使用方式請參考fonticon這個示例項目:https://github.com/shamanland/fonticongithub
另外除了Font-Awesome圖標字體覺得,還有其餘的圖標字體,例如 http://icomoon.io/web
在android開發中,每每會有大量的小圖標,但是android界面與html是不一樣的,好比html中,能夠將大量的小圖標製做成雪碧圖,這樣會大量的減小http的請求次數,對於性能也是有很大的提高,而在android中,通常對於na自己tive app的小圖標通常是用來作顯示用的,都會內嵌到 應用 ,二者也沒有什麼可比性,不過若是android應用中有大量的小圖標,無形中就增長了apk的文件大小,這個時候就到了font awesome出場了。bootstrap
font awesome是一個專爲Bootstrap設計的字體文件,咱們能夠經過向顯示字體同樣方便的顯示咱們想要顯示的圖標文件。對於android來說,可使用字體來代替部分須要顯示的小圖片,而且在這些字體中的圖片都是矢量圖,是能夠放大和縮小的,這就意味着每一個圖標都能在全部大小的屏幕上完美呈現。好了,廢話很少說,直接進入正題吧。瀏覽器
將fonts目錄下的fontawesome-webfont.ttf文件拷貝到asset文件夾下
首先須要編寫string.xml文件,須要去http://fortawesome.github.io/Font-Awesome/cheatsheet/鏈接下尋找本身想要的字體圖標對應的字符串。
<string name="heard"></string> <string name="fa_google_plus"></string> <string name="fa_save"></string> <string name="fa_thumbs_o_up"></string> <string name="fa_toggle_on"></string>
這裏每個string中的值就是須要顯示的圖標對應的值,name的值能夠隨便給一個,不過通常都是一個有意義的名稱。
在textview中使用該字符串,就能夠顯示其對應的圖標了,這裏就替換了以前使用imageview來顯示小圖標了。方便了不少。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_horizontal" android:padding="50dp" tools:context=".MainActivity" > <TextView android:id="@+id/test_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/heard" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#Ff9834" android:textSize="30sp" /> <TextView android:id="@+id/fa_google_plus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/fa_google_plus" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#87619a" android:textSize="50sp" /> <TextView android:id="@+id/fa_thumbs_o_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/fa_thumbs_o_up" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#976523" android:textSize="60sp" /> <TextView android:id="@+id/fa_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/fa_save" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#954278" android:textSize="40sp" /> <TextView android:id="@+id/fa_toggle_on" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/fa_toggle_on" android:textAppearance="?android:attr/textAppearanceLarge"