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

Che*_*eng 4 android

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

在此输入图像描述

但是,让我说,我决定只将我的应用程序部署到Jelly Bean设备.

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

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

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

kco*_*ock 12

好消息是,如果你支持4.1,它很简单.查看此链接并向下滚动到字体以获取完整的详细信息,但基本上,您将有三个字体系列(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"
Run Code Online (Sandbox Code Playgroud)

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

Typeface robotoLightItalic = Typeface.create("sans-serif-light", Typeface.ITALIC);
Run Code Online (Sandbox Code Playgroud)