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