andorid 修改字体一文搞定

简介: 本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点替换字体也是一个比较常见的需求,一般分几种情况。实现起来也不麻烦,这里简单记录下全局替换字体步骤1assets目录下拷贝字体文件步骤2application中替换默认字...

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点

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

全局替换字体

步骤1

assets目录下拷贝字体文件

步骤2

application中替换默认字体

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

/**
 * 设置自定义字体
 *
 * @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文件中注册

新增主题

<style name="YourTheme" parent="AppTheme.Base">
    <item name="android:typeface" >serif</item>
</style>

在AndroidManifest.xml文件中设置主题

<application xmlns:tools="http://schemas.android.com/tools"
    ...
    android:theme="@style/YourTheme"
    tools:replace="android:theme">
    ...
</application>

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

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

步骤2: 代码中替换

TextView textView = (TextView) findViewById(R.id.textView_font);
Typeface typeface = ResourcesCompat.getFont(this, R.font.myfont);
textView.setTypeface(typeface);

                       欢迎关注我的微信公众号,和我一起每天进步一点点!

AntDream

目录
相关文章
|
Android开发
Android 自带的字体库、字体样式
Android 自带的字体库、字体样式
1098 0
Android 自带的字体库、字体样式
|
8月前
|
自然语言处理 Linux 程序员
Lvgl(V8.2)自定义字体实现多国语言切换功能
Lvgl(V8.2)自定义字体实现多国语言切换功能
531 0
|
9月前
|
编译器 C++
Visual Studio 2022 中如何设置背景图片,壁纸
Visual Studio 2022 中如何设置背景图片,壁纸
|
iOS开发
(转载)教你如何在iOS项目中设置各种字体
原文地址:http://www.cnblogs.com/jijiYY/p/4736967.html 在iOS开发中设置字体的方法有很多种,下面为大家介绍比较常用的三种方法 1.
1372 0
|
API
uwp 获取系统字体库
原文:uwp 获取系统字体库 效果图:   要获取到字体库首先要在 NuGet 添加 SharpDx.Direct2D1  api: /// /// 获取系统字体库列表 /// public void GetFontLibrary() { SharpDX.
1096 0
|
Android开发 图形学
unity在安卓中横屏闪退
竖屏没问题,横屏闪退   配置文件的AndoridManifest.xml横竖屏设置要和UNITY设置的一致,否则就会强退   UNITY横竖屏设置
|
Android开发
修改Android系统字号(二)
/*********************************************************************** * 修改Android系统字号(二) * 说明: * 虽然在《修改Android系统字号(一)》中修改了Launcher中修改了界面, * 但是在其他的系统软件里还是有很多地方需要另外修改的,所以那是不行, * 今天Charlie给出意见,修改DPI,效果很好。
908 0

热门文章

最新文章