移动端在线教育系统开发过程中,作业功能中的原生字体,对于特殊符号的显示效果可能不够好,为此,开发人员可以用贴近书写的字体形式去显示这些符号,以万岳在线教育系统为例,如何从程序上实现呢?
1、将所需的字体拷贝进入assets文件夹
2、抽取公共静态方法获取字体。这里需要注意一下字体加载进来是比较消耗内存的,建议操作中保证一种字体只加载一次。
代码语言:javascript复制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里面。
代码语言:javascript复制Typeface typeface= ResourceUtil.getTypeFace(CommonAppContext.sInstance,"BrushScriptStd.ttf");
if(typeface!=null&&typeface!=tvHomeworkScore.getTypeface()){
tvHomeworkScore.setTypeface(typeface);
}
4、确定不使用的时候可以释放掉字体,减轻内存的压力。
代码语言:javascript复制public static void clearTypeface(){
if(typefaceArrayMap!=null){
typefaceArrayMap.clear();
}
}
以上就是在线教育系统开发过程中,作业功能字体自定义的过程。
声明:以上内容为作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任。