移動端在線教育系統開發過程當中,做業功能中的原生字體,對於特殊符號的顯示效果可能不夠好,爲此,開發人員能夠用貼近書寫的字體形式去顯示這些符號,以萬嶽在線教育系統爲例,如何從程序上實現呢?
一、將所需的字體拷貝進入assets文件夾。
二、抽取公共靜態方法獲取字體。這裏須要注意一下字體加載進來是比較消耗內存的,建議操做中保證一種字體只加載一次。ide
public static Typeface getTypeFace(Context context,String fileName){ if(typefaceArrayMap==null){ typefaceArrayMap=new ArrayMap<>(); } Typeface typeface=typefaceArrayMap.get(fileName); if(typeface==null){ typeface = Typeface.createFromAsset(context.getAssets(), "BrushScriptStd.ttf"); if(typeface==null){ DebugUtil.sendException("typeface 找不到資源"); }else{ typefaceArrayMap.put(fileName,typeface); } } return typeface; }
三、在使用字體的時候儘可能避免重複載入。若是頻繁使用的話,建議將字體封裝在自定義view裏面。字體
Typeface typeface= ResourceUtil.getTypeFace(CommonAppContext.sInstance,"BrushScriptStd.ttf"); if(typeface!=null&&typeface!=tvHomeworkScore.getTypeface()){ tvHomeworkScore.setTypeface(typeface); }
四、肯定不使用的時候能夠釋放掉字體,減輕內存的壓力。code
public static void clearTypeface(){ if(typefaceArrayMap!=null){ typefaceArrayMap.clear(); } }
以上就是在線教育系統開發過程當中,做業功能字體自定義的過程。blog