[Android] 如何自訂字型,及Font Awesome的應用

這篇要說明如何在Android App中顯示自訂的字型,首先請上網尋找喜歡的字型,以下為幾個提供免費字型的網站,下載字型之前請先留意該字型的版權聲明,以避免侵權:

程式範例

下載字型檔(.TTF)後,在assets資料夾下新增fonts資料夾,然後把字型檔複製到fonts資料夾內。


下面的程式範例是從asset中取得字型檔,然後用setTypeface方法將指定的Text View更換字型。
TextView mtextView = (ImageView) findViewById(R.id.textview1);
mtextView.setTypeface(Typeface.createFromAsset(getAssets()
                    , "fonts/Lato-light.ttf"));

進階應用:使用Font Awesome

接下來再介紹一個關於字型的進階用法,如果有一個需求是要在App裡動態顯示圖形,例如氣象App會隨天氣的變化而改變不同的天氣圖示。如果要用圖檔來顯示天氣圖示,需要準備各種天氣的圖形,以及不同大小的圖形,以因應不同螢幕大小的裝置,這樣的話,要製作非常多的圖檔。

事實上我們可以將Font Awesome的圖示應用在Android App,Font Awesome是一個網頁圖庫,它將網頁常用圖示放到字型檔裡,好處是可以用Text Size來變更圖形大小,用Text Color來變更圖形顏色,而且只要在App放一個幾十KB的字型檔,不需要放一堆圖檔。

例如我們要在App畫面顯示Android圖形,首先要到Font Awesome Cheat Sheet參照相對應的Uncode:fa-android [& # x f 1 7 b;],將對應關係記錄在string.xml。
<string name="fa_android"> & # x f 1 7 b ; </string>


然後比照上例作法,把Font Awesome字型檔放到assets/fonts目錄下,然後在程式引用字型檔,第四行用setText來顯示圖示。
TextView mtextView = (ImageView) findViewById(R.id.textview1);
mtextView.setTypeface(Typeface.createFromAsset(getAssets()
                    , "fonts/fontawesome.ttf"));
mtextView.setText(R.id.fa_android);

Font Awesome
事實上,有不少專案受到Font Awesome的啟發,開發出類似概念的字型圖庫,例如Erik Flowers開發的Weather Icons專案是天氣圖庫。

Weather Icons



相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

隱私權政策產生器 Privacy Policy Generator

使用 Vysor 在電腦上控制 Android 裝置