Font-Awesome for android

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

font awesome是一個專爲Bootstrap設計的字體文件,咱們能夠經過向顯示字體同樣方便的顯示咱們想要顯示的圖標文件。對於android來說,可使用字體來代替部分須要顯示的小圖片,而且在這些字體中的圖片都是矢量圖,是能夠放大和縮小的,這就意味着每一個圖標都能在全部大小的屏幕上完美呈現。好了,廢話很少說,直接進入正題吧。瀏覽器

在android上使用font awesome

1.下載font awesome

下載地址

2.解壓下載的壓縮包

將fonts目錄下的fontawesome-webfont.ttf文件拷貝到asset文件夾下 
技術分享

3.編寫string.xml

首先須要編寫string.xml文件,須要去http://fortawesome.github.io/Font-Awesome/cheatsheet/鏈接下尋找本身想要的字體圖標對應的字符串。

<string name="heard">&#xf004;</string> <string name="fa_google_plus">&#xf0d5;</string> <string name="fa_save">&#xf0c7;</string> <string name="fa_thumbs_o_up">&#xf087;</string> <string name="fa_toggle_on">&#xf205;</string>

這裏每個string中的值就是須要顯示的圖標對應的值,name的值能夠隨便給一個,不過通常都是一個有意義的名稱。

4.編寫佈局

在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" android:textColor="#273896" android:textSize="50sp" /> </LinearLayout>

能夠發現,這裏咱們能夠自定義該圖標的顏色和大小,這樣在不一樣的屏幕適配也是極好的,很方便。

5.代碼中引用

首先找到asset下對應的.ttf文件

Typeface font = Typeface.createFromAsset(getAssets(), "fontawesome-webfont.ttf");

而後只須要爲每個textView setTypeface(font)便可。

((TextView)findViewById(R.id.fa_google_plus)).setTypeface(font);

顯示效果以下: 
技術分享

雖然font awesome有諸多優勢,可是仍是不得不提其圖標數量仍是那麼的有限,咱們很難找到從其身上全部的須要的圖標。全當一個瞭解吧,這也是其尚未在本地應用流行起來的緣由吧,不過對於web app這是一個很好的創新,尤爲是使用bootstrap編寫出來的web頁面,一樣能夠在手機的瀏覽器上訪問。這種自適應的佈局,真正達到了pc和手機同時能夠訪問的目的。

源碼下載

相關文章
相關標籤/搜索