Home » Android 程式片段

[Android]使用自訂的字型

Android 內建有 SansSerifMonospace 等三種字型,只要在 layout 設定時指定就可以了:

1
android:typeface="font name"

那有辦法使用自訂的字型嗎?筆者是不曉得其它的平台是否可行,但在 Android 上是一件很簡單不過的事。首先在專案中的 assets 資料夾中建立一個名為 fonts 的資料夾,接著在把字型檔放入該資料夾:

接著只要利用 Typeface 就能把自訂的字型給其它元件使用囉。

1
2
3
4
5
6
7
import android.graphics.Typeface;
import android.widget.TextView;
 
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/Bleeding Cowboys.ttf");
 
TextView custom = (TextView)findViewById(R.id.customFont);
custom.setTypeface(font);

接著...接著就直接看效果了:

createFromAsset 是從 assets 資料夾中來取得程式包中的內容,若是要從其它位置來取得字型檔的話,則可以使用 createFromFile

1
2
3
4
5
6
7
8
import android.graphics.Typeface;
import android.widget.TextView;
 
// Bleeding Cowboys.ttf 放在 sdcard 的根目錄下
Typeface font = Typeface.createFromFile("sdcard/Bleeding Cowboys.ttf");
 
TextView custom = (TextView)findViewById(R.id.customFont);
custom.setTypeface(font);

這樣就算開發者沒有提供字型檔案,只要有提供讀取字型的功能就可以囉!另外要注意的是,字型檔案只要放在 assets 資料夾中就可以了,多一層 fonts 資料夾做好分類而已。但檔名的大小寫是要一致的才行。

發表迴響