Chr*_*rry 255 fonts android styles
在这个问题的答案中,用户列出了android:fontFamily12种变体的值(见下文).这些价值来自哪里?该文档android:fontFamily未在任何地方列出此信息(我在此处查看,此处).这些字符串在各个地方的Android styles.xml文件中列出,但是这些字符串如何映射回Roboto字体?
从android 4.1/4.2开始,可以使用以下Roboto字体系列:
Run Code Online (Sandbox Code Playgroud)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)与此相结合
Run Code Online (Sandbox Code Playgroud)android:textStyle="normal|bold|italic"可能有12种变体:
- 定期
- 斜体
- 胆大
- 加粗斜体
- 光
- 光斜体
- 瘦
- 薄斜体
- 经常凝聚
- 浓缩斜体
- 浓缩大胆
- 浓缩大胆的斜体
在styles.xml应用程序的文件中我正在处理有人将其列为字体系列,我很确定它是错误的:
<item name="android:fontFamily">Roboto-Regular.ttf</item>
我想正确设置我们的应用程序主题(包括正确使用fontFamily)并删除在我查看文件之前创建的某些样式中的所有冗余.
Ahm*_*mad 343
这些价值来自哪里?android:fontFamily的文档不会在任何地方列出此信息
这些确实没有在文档中列出.但是在"字体系列"一节中提到了它们.该文档列出了Android Jelly Bean 4.1的每个新公共API.
在应用程序的styles.xml文件中,我正在处理有人将其列为字体系列,我很确定它是错误的:
是的,那是错的.您没有引用字体文件,您必须使用上面链接文档中提到的字体名称.在这种情况下它应该是这样的:
<item name="android:fontFamily">sans-serif</item>
Run Code Online (Sandbox Code Playgroud)
与已经陈述的链接答案一样,有12种变体是可能的:
常规(默认):
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
斜体:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
大胆:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>
Run Code Online (Sandbox Code Playgroud)
大胆的:
<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>
Run Code Online (Sandbox Code Playgroud)
光:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
轻斜体:
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
薄:
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
细斜体:
<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
简明定期:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
浓缩斜体:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
简洁大胆:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>
Run Code Online (Sandbox Code Playgroud)
浓缩粗体:
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>
Run Code Online (Sandbox Code Playgroud)
中:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
Run Code Online (Sandbox Code Playgroud)
中斜体:
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
黑色:
<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>
Run Code Online (Sandbox Code Playgroud)
为了快速参考,这就是它们的样子:

New*_*onx 100
该材料设计排版网页,对选择字体和样式的一些字体和建议的演示.
对于代码侦探:fonts.xml是Android字体的权威和不断扩展的列表.
设置android:fontFamily和android:textStyle属性,例如
<!-- Roboto Bold -->
<TextView
android:fontFamily="sans-serif"
android:textStyle="bold" />
Run Code Online (Sandbox Code Playgroud)
从该表中得到所需的值:
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 |
Run Code Online (Sandbox Code Playgroud)
(Noto Sans是一种后备字体;您不能直接指定它)
注意:此表源自fonts.xml.每个字体的姓氏和样式都列在fonts.xml中,例如
<family name="serif-monospace">
<font weight="400" style="normal">CutiveMono.ttf</font>
</family>
Run Code Online (Sandbox Code Playgroud)
serif-monospace因此是字体系列,normal是风格.
根据fonts.xml和以前的system_fonts.xml的日志,您可以看到添加每种字体的时间:
据我所知,你不能在xml或主题中声明自定义字体.我通常只是自定义类扩展textview,在实例化时设置自己的字体,并在我的布局xml文件中使用它们.
即:
public class Museo500TextView extends TextView {
public Museo500TextView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));
}
}
Run Code Online (Sandbox Code Playgroud)
和
<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" />
Run Code Online (Sandbox Code Playgroud)