Android自定义字体非常简单,能够从assets和SD卡两处加载标准的ttf字体。要实现自定义字体,只需借助工具类Typeface即可。文末有工程源码。
如果发生了Caused by: java.lang.RuntimeException: native typeface cannot be made的异常的话,请检查字体路径。另外我发现少数TTF字体可能因为体积太大的原因,也会报这个异常。
从assets里加载的时候,会增加apk包的体积,使用方法:
//加载assets中的字体
TextViewtextView1=(TextView)findViewById(R.id.textView1);
Typefacetypeface=Typeface.createFromAsset(getAssets(),"fonts/1.ttf");
textView1.setTypeface(typeface);
从sd卡里加载的时候,并不需要额外的SD卡读权限,实现方法:
//加载SD卡中的字体
TextViewtextView2=(TextView)findViewById(R.id.textView2);
Typefacetypeface2=Typeface.createFromFile(Environment.getExternalStorageDirectory()+"/2.ttf");
textView2.setTypeface(typeface2);
源码工程上传中,你可以在此处找到。