移动端在线教育系统开发过程中,作业功能中的原生字体,对于特殊符号的显示效果可能不够好,为此,开发人员可以用贴近书写的字体形式去显示这些符号,以万岳在线教育系统为例,如何从程序上实现呢?
1、将所需的字体拷贝进入assets文件夹。
在线教育系统开发中,如何实现作业功能字体自定义?_第1张图片
2、抽取公共静态方法获取字体。这里需要注意一下字体加载进来是比较消耗内存的,建议操作中保证一种字体只加载一次。

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;
}

3、在使用字体的时候尽量避免重复载入。如果频繁使用的话,建议将字体封装在自定义view里面。

Typeface typeface= ResourceUtil.getTypeFace(CommonAppContext.sInstance,"BrushScriptStd.ttf");
if(typeface!=null&&typeface!=tvHomeworkScore.getTypeface()){
   tvHomeworkScore.setTypeface(typeface);
}

4、确定不使用的时候可以释放掉字体,减轻内存的压力。

public static void clearTypeface(){
    if(typefaceArrayMap!=null){
       typefaceArrayMap.clear();
    }
}

以上就是在线教育系统开发过程中,作业功能字体自定义的过程。