前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Andorid 修改字体一文打尽

Andorid 修改字体一文打尽

作者头像
AntDream
发布2019-07-15 17:40:30
4470
发布2019-07-15 17:40:30
举报

替换字体也是一个比较常见的需求,一般分几种情况。实现起来也不麻烦,这里简单记录下

全局替换字体

步骤1

assets目录下拷贝字体文件

步骤2

application中替换默认字体

在Application的onCreate方法中增加替换方法

代码语言:javascript
复制
/**
 * 设置自定义字体
 *
 * @param context
 * @param staticTypefaceFieldName 需要替换的系统字体样式
 * @param fontAssetName           替换后的字体样式
 */
public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) {
    // 根据路径得到Typeface
    Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName);
    // 设置全局字体样式
    replaceFont(staticTypefaceFieldName, regular);
}

private static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) {
    try {
        final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName);
        staticField.setAccessible(true);
        //替换系统字体样式
        staticField.set(null, newTypeface);
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
}
步骤3:新增主题Theme,并在AndroidManifest文件中注册

新增主题

代码语言:javascript
复制
<style name="YourTheme" parent="AppTheme.Base">
    <item name="android:typeface" >serif</item>
</style>

在AndroidManifest.xml文件中设置主题

代码语言:javascript
复制
<application xmlns:tools="http://schemas.android.com/tools"
    ...
    android:theme="@style/YourTheme"
    tools:replace="android:theme">
    ...
</application>

替换某些布局中的字体,也就是局部替换

步骤1:在res目录下新建font目录,拷贝字体文件

步骤2: 代码中替换

代码语言:javascript
复制
TextView textView = (TextView) findViewById(R.id.textView_font);
Typeface typeface = ResourcesCompat.getFont(this, R.font.myfont);
textView.setTypeface(typeface);

如果对你有帮助,欢迎分享转发

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AntDream 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全局替换字体
    • 步骤1
      • 步骤2
        • 步骤3:新增主题Theme,并在AndroidManifest文件中注册
        • 替换某些布局中的字体,也就是局部替换
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档