android - 每次我们想在应用程序中更改字体时,我们是否必须复制 Font TTF

标签 android

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

enter image description here

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

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

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

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

最佳答案

好消息是,如果您支持 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);

关于android - 每次我们想在应用程序中更改字体时,我们是否必须复制 Font TTF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227023/

相关文章:

android - 在 EditText 中仅允许基于正则表达式的选定字符

c# - TeeChart for Mono Android 无法编译

java - 非常简单的viewPager2

android - 在 Android 上使用 sqlite(带 FTS)

android - 抽屉动画报错:'Animation<FractionalOffset>'无法赋值给参数类型 'Animation<Offset>'

Android 无法解析类型 ulong64

java - 如何在我的 Android 应用程序项目中包含新的 .java 文件?

android - FacebookCallback#onCancel() 在 Android 中的 Facebook Sdk 4.2.0 中登录一次后调用

android - 设置多个警报以调用服务

java - Android SSL - 不适用于 API 7