android字体设置

为了应对不同风的品牌,需要配置不同的字体

一、自定义字体

1.android Typeface使用TTF字体文件设置字体

我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。
第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。
第二步,程序中调用:

AssetManager mgr=getAssets();//得到AssetManager
Typeface tf=Typeface.createFromAsset(mgr, "fonts/ttf.ttf");//根据路径得到Typeface
tv=findViewById(R.id.textview);
tv.setTypeface(tf);//设置字体

二、android自带的设置

在xml文件中使用 android:textStyle=”bold” 可以将英文设置成粗体, 但是不能将中文设置成粗体,
将中文设置成粗体的方法是: 注意:部分字体中文无效,虽然不会报错,但是对中文无效。

TextView tv = (TextView)findViewById(R.id.TextView01); 
tv.getPaint().setFakeBoldText(true);//中文仿“粗体”--使用TextPaint的仿“粗体”设置setFakeBoldText为true。

三、哪些属性可以影响字体

android:textStyle:

textStyle 主要用于设定一些字体的样式,它是对所有的字体都生效的。也就是说哪怕你替换了字体,依然可以使用 textStyle 来修饰它的样式。textStyle 本身支持的可选项有 normal|bold|italic,它们也非常的好理解,就是普通|粗体|斜体。
字体是不受 textStyle 影响的,这里影响的只有它的样式。

android:typeface

typeface 可以用于设置一些默认的字体,它可选的属性有 normal|sans|serif|monospace 等。normal 和 sans 的字体其实是一样的,serif 是一个带衬线的字体,而 nonospace 是等宽字体。
衬线其实就是字体边缘的那一点点小啾啾。

android:fontFamily

fontFamily 看着像是对 typeface 的一次加强,从它的可选项就能看出来,它更细致的区分了字体的样式。
fontFamily 的可选项还是很多的,这里就不一一列举了。不过需要注意,有一些字体的设置是有版本限制的。
例如:sans-serif-medium 是需要 Android 5.0 的版本才支持的。

需要注意的是,如果同时配置了 typeface 和 fontFamily ,将使用 fontFamily 配置的字体。(代码中可以看到相关逻辑)
而除了 typeface 和 fontFamily 会有冲突之外,它们俩都是可以配合 typeStyle 属性一起使用的,也就是说,这里配置的字体,都是可以再加粗或者加斜体。

修改字体的方式

如果你能说服你的设计师,接受系统字体的话,你可以在 Theme 中,去配置你需要的默认字体。

在 application 中,通过 android:theme 来配置一个 App 的主题。一般新创建的项目,都是 @style/AppTheme 。在其中追加关于字体的属性 android:fontFamily,它就可以完成对全局设置一个系统字体。当然你可以对一个单独的 TextView 配置一个特别的字体,都是可以接受的。

三、RoBoto

Android4.0后默认字体就使用了Roboto
相关表可以看这里

四、明白了如何设置,那应该设置啥呢

UI设计师给的字体方案 与代码设置之间是有差异的。她所规定的字体可能需要改多个属性。
具体到时候再分析吧

相关主题的,这个不错呀,有图文很详细,一目了然
Android 字体修改,所有的细节都在这里 | 开篇

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值