栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 使用第三方字体

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 使用第三方字体

先看下图

一.全局替换方式 1.新建assets引入资源

 2.  自定义application,将第三方的字体,替换当前系统默认字体
class App : Application() {
    override fun onCreate() {
        super.onCreate()
        initTypeface()
    }

    private fun initTypeface() {
        val typefaceBysong = Typeface.createFromAsset(assets, "fonts/bysong.ttf")
        val monospace = Typeface::class.java.getDeclaredField("MONOSPACE")
        monospace.isAccessible = true
        monospace.set(null, typefaceBysong)
    }
}
 3.定义app的style(主要是monospace

    
    

    

4.设置在manifests文件中设置application,替换theme="@style/AppTheme.NoActionBar"



    
      
        
            
                

                
            
        
    

 这样全部都替换成第三方字体,对于字体因为太大而导致的问题,可以将字体的扩展名改成zip或者jpg就会解决。

二.单个TextView替换 1.对每个TextView调用 setTypeface(@Nullable Typeface tf)方法
class FontActivity : AppCompatActivity() {
    private lateinit var mBinding: ActivityFontBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        mBinding = ActivityFontBinding.inflate(LayoutInflater.from(this))
        setContentView(mBinding.root)


        //得到AssetManager
        val typefaceBysong = Typeface.createFromAsset(assets, "fonts/bysong.ttf")
        //设置字体
        mBinding.textViewThird.typeface = typefaceBysong
    }
}



    
    

  但是这样未免有些麻烦,需要对每个TextView调用 setTypeface(@Nullable Typeface tf)方法,于是还可以这样

2在res资源文件夹下新建font文件夹,将三方字体资源文件导入

 对TextView添加android:fontFamily="@font/fzkatong"标签即可



          
    
三.官方指南文档

字体资源  |  Android 开发者  |  Android Developers

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821183.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号