在 this question 的回答中用户列出 android:fontFamily
的值和 12 种变体(见下文)。这些值(value)观从何而来? android:fontFamily
的文档没有在任何地方列出此信息(我检查了 here 和 here )。字符串在 Android styles.xml 中列出文件在各个地方,但是这些如何映射回 Roboto 字体?
From android 4.1 / 4.2, 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)
in combination with this
android:textStyle="normal|bold|italic"
12 variants are possible:
- Regular
- Italic
- Bold
- Bold-italic
- Light
- Light-italic
- Thin
- Thin-italic
- Condensed regular
- Condensed italic
- Condensed bold
- Condensed bold-italic
在 styles.xml
我正在处理的应用程序中的文件将其列为字体系列,我很确定这是错误的:
<item name="android:fontFamily">Roboto-Regular.ttf</item>
我想为我们的应用正确设置主题(包括正确使用 fontFamily),并删除在我查看文件之前创建的某些样式中的所有冗余。
最佳答案
Where do these values come from? The documentation for android:fontFamily does not list this information in any place
这些确实没有在文档中列出。但是他们被提到了here在“字体系列”部分下。该文档列出了适用于 Android Jelly Bean 4.1 的每个新公共(public) API。
In the styles.xml file in the application I'm working on somebody listed this as the font family, and I'm pretty sure it's wrong:
是的,这是错误的。您不引用字体文件,您必须使用上面链接文档中提到的字体名称。在这种情况下,它应该是这样的:
<item name="android:fontFamily">sans-serif</item>
就像已经说明的链接答案一样,可能有 12 种变体:
在 Android Jelly Bean (4.1) - API 16 中添加:
常规(默认):
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
斜体:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>
粗体:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
粗斜体:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>
光:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>
浅斜体:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>
薄:
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>
细斜体:
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>
浓缩正则:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>
简体斜体:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>
浓缩粗体:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>
浓缩粗斜体:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>
在 Android Lollipop (v5.0) - API 21 中添加:
中等:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
中等斜体:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>
黑色:
<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>
为了快速引用,它们都是这样的:
关于android - android :fontFamily and what they map to? 的有效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691530/