如何在 xml 布局中使用 Roboto

How to use Roboto in xml layout

我现在经常听到:“Roboto 是默认字体类型”。但是我该如何使用这个默认字体类型呢?我的具体意思是,以前我下载资产等的时候,我以前必须指定像

这样的东西
<item name="typeface">roboto_bold</item>

假设我有兴趣使用所有 say(反过来)

roboto_thin
 roboto_thin_italic
 roboto_light
 roboto_light_italic
 roboto_regular
 roboto_italic
 roboto_medium
 roboto_medium_italic
 roboto_bold
 roboto_bold_italic
 roboto_black
 roboto_black_italic
 roboto_condensed_light
 roboto_condensed_light_italic
 roboto_condensed_regular
 roboto_condensed_italic
 roboto_condensed_bold
 roboto_condensed_bold_italic
 roboto_slab_thin
 roboto_slab_light
 roboto_slab_regular
 roboto_slab_bold

如何在我的 xml 布局文件或 style.xml 文件中指定它们?

我已经找到了一些可能性

使用fontfamily

最简单的方法是将 fontFamily 属性添加到您的特定 view,例如 TextView

根据How to change fontFamily of TextView in Android

From android 4.1 / 4.2 / 5.0, the following Roboto font families are available:

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-thin"      // roboto thin (android 4.2)
android:fontFamily="sans-serif-medium"    // roboto medium (android 5.0)

http://developer.android.com/reference/android/widget/TextView.html#attr_android:typeface

in combination with

android:textStyle="normal|bold|italic"

this 14 variants are possible:

  • Roboto regular
  • Roboto italic
  • Roboto bold
  • Roboto bold italic
  • Roboto-Light
  • Roboto-Light italic
  • Roboto-Thin
  • Roboto-Thin italic
  • Roboto-Condensed
  • Roboto-Condensed italic
  • Roboto-Condensed bold
  • Roboto-Condensed bold italic
  • Roboto-Medium
  • Roboto-Medium italic

您也可以使用如下代码以编程方式执行此操作:

textView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL));

使用typeface

可用的内置 ibn 字体是:

  • 正常
  • 没有
  • 衬线体
  • 等宽

您可以像下面这样组合它们:

   android:typeface="sans" | "serif" | "monospace"

参见 android:typeface

使用styles.xml

你在 styles.xml` 中设置样式是这样的:

<style name="boldText">
    <item name="android:textStyle">bold|italic</item>
    <item name="android:textColor">#FFFFFF</item>
</style>

要在 main.xml 布局文件中使用此样式,只需使用:

style="@style/boldText"

组合文本属性

您可以像下面的代码一样混合 TextView 个属性:

 android:fontFamily="serif" 
 android:textStyle="italic"

使用第三方库

Foundry - 通过 XML 布局和样式应用自定义字体。

android-typeface-helper - Android

的字体助手

补课

您可能还想阅读 Roboto typeface and Typography Google 的设计指南。

类似的 Whosebug 问题:
  • Using Roboto thin or condensed
  • How do I specify eg. Roboto-Medium or Roboto-Black in styles.xml
  • Use Roboto font in app with minimum API level 14

    希望对您有所帮助

除了 piotrek's 答案之外,如果您还没有决定使用哪种 Roboto 字体,这里有一个快速备忘单: