曾无好事来相访,赖尔高文一起予。这篇文章主要讲述android:fontFamily的有效值以及它们映射到的内容?相关的知识,希望能为你提供帮助。
在this question的答案中,用户列出了android:fontFamily
和12个变体的值(见下文)。这些价值来自哪里? android:fontFamily
的文档没有在任何地方列出这些信息(我检查了here和here)。这些字符串在各种地方的Android styles.xml文件中列出,但是这些字符串如何映射回Roboto字体?
从android 4.1 / 4.2开始,可以使用以下Roboto字体系列:在应用程序的
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)
与此相结合
android:textStyle="normal|bold|italic"
可能有12种变体:
- 定期
- 斜体
- 胆大
- 加粗斜体
- 光
- 光斜体
- 瘦
- 薄斜体
- 经常凝聚
- 浓缩斜体
- 浓缩大胆
- 浓缩大胆的斜体
styles.xml
文件中我正在研究某人将其列为字体系列,我很确定它是错误的:<
item name="android:fontFamily">
Roboto-Regular.ttf<
/item>
我想正确设置我们的应用程序主题(包括正确使用fontFamily)并删除在我查看文件之前创建的某些样式中的所有冗余。
答案
这些价值来自哪里? android:fontFamily的文档不会在任何地方列出此信息这些确实没有在文档中列出。但他们在“字体系列”一节中提到了here。该文档列出了Android Jelly Bean 4.1的每个新公共API。
在应用程序的styles.xml文件中,我正在处理有人将其列为字体系列,我很确定它是错误的:是的,那是错的。您没有引用字体文件,您必须使用上面链接文档中提到的字体名称。在这种情况下它应该是这样的:
<
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>
【android(fontFamily的有效值以及它们映射到的内容())】光斜体:
<
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>
为了快速参考,这就是它们的样子:
另一答案 Available fonts (as of Oreo)
文章图片
Material Design Typography页面包含一些这些字体的演示以及有关选择字体和样式的建议。
对于代码侦探:
fonts.xml
是Android字体的权威和不断扩展的列表。Using these fonts设置
android:fontFamily
和android:textStyle
属性,例如<
!-- Roboto Bold -->
<
TextView
android:fontFamily="sans-serif"
android:textStyle="bold" />
从该表中得到所需的值:
Font| android:fontFamily| android:textStyle
-------------------------|-----------------------------|-------------------
Roboto Thin| sans-serif-thin|
Roboto Light| sans-serif-light|
Roboto Regular| sans-serif|
Roboto Bold| sans-serif| bold
Roboto Medium| sans-serif-medium|
Roboto Black| sans-serif-black|
Roboto Condensed Light| sans-serif-condensed-light|
Roboto Condensed Regular | sans-serif-condensed|
Roboto Condensed Medium| sans-serif-condensed-medium |
Roboto Condensed Bold| sans-serif-condensed| bold
Noto Serif| serif|
Noto Serif Bold| serif| bold
Droid Sans Mono| monospace|
Cutive Mono| serif-monospace|
Coming Soon| casual|
Dancing Script| cursive|
Dancing Script Bold| cursive| bold
Carrois Gothic SC| sans-serif-smallcaps|
(Noto Sans是一种后备字体; 您不能直接指定它)
注意:此表源自
fonts.xml
。 fonts.xml中列出了每种字体的姓氏和样式,例如<
family name="serif-monospace">
<
font weight="400" style="normal">
CutiveMono.ttf<
/font>
<
/family>
serif-monospace
因此是字体系列,而normal
就是这种风格。Compatibility基于fonts.xml的log和前system_fonts.xml,您可以看到添加每种字体的时间:
- 冰淇淋三明治:Roboto常规,粗体,斜体和粗体斜体
- 果冻豆:Roboto光,浅斜体,浓缩,浓缩粗体,浓缩斜体,浓缩粗斜体
- 果冻豆MR1:Roboto薄而薄的斜体
- 棒糖: Roboto中等,中等斜体,黑色和黑色斜体 Noto Serif常规,粗体,斜体,粗体斜体 Cutive Mono 快来了 跳舞剧本 Carrois Gothic SC 诺托桑斯
- 奥利奥MR1:Roboto浓缩媒介
即:
public class Museo500TextView extends TextView {
public Museo500TextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));
}
}
和
<
my.package.views.Museo900TextView
android:id="@+id/dialog_error_text_header"
android:layout_width="190dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="12sp" />
推荐阅读
- Android - SearchView - setTypeface不可用
- AppCompatActivity的按钮文本的字体样式已更改
- 如何在Android中以编程方式向影像添加阴影( [重复])
- FFMPEG命令在设置项目的目标SDK版本29(Android Q问题)时不起作用
- Flutter Web和Firebase身份验证TypeError(无法读取未定义的属性'app')
- 如何在WordPress网站上收集访问者的反馈()
- Cloud Flare SSL破解WordPress和Joomla以及如何修复
- 如何通过Google Cloud Storage服务WordPress媒体()
- 12个WordPress简历主题以创造最佳印象