每当我们想要在应用程序中更改字体时,我们是否必须复制字体TTF

时间:2013-01-09 01:38:01

标签: android

以前,为了使我的应用程序在Gingerbread设备及以上版本中可行,我必须将Robotto字体资源复制到资产文件夹中。这是因为Gingerbread没有自带Robotto字体。

enter image description here

但是,假设我决定只将我的应用部署到Jelly Bean设备。

  1. 我是否还需要手动将字体资源复制到资产文件夹中?我可以使用系统本身的字体资源吗?这是鼓励的吗?我在想,不提供我自己的字体文件,我可以让我的应用程序更小。
  2. 这是从资产文件夹中获取TypeFace的代码。

    Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Regular.ttf");

    如果我想直接从系统本身获取TypeFace,怎么做?

1 个答案:

答案 0 :(得分:12)

好消息是,如果你支持4.1,那很简单。查看this link并向下滚动到字体以获取完整的详细信息,但基本上,您将有三种字体系列(Roboto,Roboto Light,RobotoCondensed)可供选择,每种类型有四种(正常,粗体,斜体) ,粗体斜体)。

在XML中,您只需使用标准文本属性:

android:fontFamily="sans-serif"
android:fontFamily="sans-serif-light"
android:fontFamily="sans-serif-condensed"

android:textStyle="bold"
android:textStyle="italic"
android:textStyle="bold|italic"

或者以编程方式,您可以像这样获取它们:

Typeface robotoLightItalic = Typeface.create("sans-serif-light", Typeface.ITALIC);