放牧代码和思想
专注自然语言处理、机器学习算法
    Why join the Navy if you can be a pirate?

Android自定义字体 TextView 从SD卡加载TTF字体

Android自定义字体非常简单,能够从assets和SD卡两处加载标准的ttf字体。要实现自定义字体,只需借助工具类Typeface即可。文末有工程源码。

如果发生了Caused by: java.lang.RuntimeException: native typeface cannot be made的异常的话,请检查字体路径。另外我发现少数TTF字体可能因为体积太大的原因,也会报这个异常。

另外Typeface的API文档:http://developer.android.com/reference/android/graphics/Typeface.html 。

从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);

源码工程上传中,你可以在此处找到

知识共享许可协议 知识共享署名-非商业性使用-相同方式共享码农场 » Android自定义字体 TextView 从SD卡加载TTF字体

分享到:更多 ()

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    我的程序按照您这样做了之后,报找不到sd卡下的这个字体的错误,您能帮我解决下吗

    小贝2年前 (2016-04-13)回复

我的开源项目

HanLP自然语言处理包基于DoubleArrayTrie的Aho Corasick自动机