android字体设置

  • Post author:
  • Post category:其他


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



一、自定义字体

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 字体修改,所有的细节都在这里 | 开篇



版权声明:本文为xianrenli38原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。