如何讓Android 文字(TextView)使用自訂字型不卡頓
有時為了版面好看,或是想要表現出文青的氣息,會想要把App的字型做個統一的樣式呈現,取代掉Android系統內建的字型,於是就會有必須變更字型的需求。而實作的方式只要透過以下幾個步驟就可以完成: 1.先在assets資料夾建立fonts資料夾,並將字型檔複製到assets/fonts的目錄下 2.將文字設定為自訂的字型 private Typeface fontType; private TextView text; fontType = Typeface.createFromAsset(getActivity().getAssets(),"fonts/NotoSansCJKtc-Regular.otf"); text.setTypeface(fontType); 基本上到步驟2就已經完成文字使用自訂字型的功能了,但如果使用自訂字型的文字同時出現在ListView或是ViewPager,在滑動的時候就會發生卡頓的情形,所以建議繼續實作步驟3 3.新增靜態提供字型的class,保留產生的字型物件 public class TypeFaceProvider { private static Hashtable typeFaces = new Hashtable (3); public static Typeface getTypeFace(Context context, String fileName) { Typeface typeface = typeFaces.get(fileName); if (typeface == null) { String fontPath = "fonts/" + fileName; typeface = Typeface.createFromAsset(context.getAssets(), fontPath); typeFaces.put(fileName, typeface); } return typeface; } } 然後將Typeface改為使用靜態提供字型的class所產生的物件 pr...