有效值为Android:fontFamily中和他们映射到?值为、有效、fontFamily、Android

2023-09-12 00:58:08 作者:历日旷久

在回答this问题用户列出值安卓fontFamily中 12的变种(见下文)。哪里这些价值从何而来?该文档安卓fontFamily中未列出在任何地方该信息(我查here,和这里)。该字符串中列出了Android的styles.xml文件在不同的地方,但如何做这些映射回Roboto字体?

  

这是Android的4.1 / 4.2,下面的Roboto字体家庭   可用:

 安卓fontFamily中=无衬线// roboto常规
机器人:fontFamily中=无衬线光// roboto光
机器人:fontFamily中=无衬线,凝聚// roboto凝聚
机器人:fontFamily中=无衬线薄// roboto薄(安卓4.2)
机器人:fontFamily中=无衬线介质// roboto介质(安卓5.0)
 
android中xml文件edittext设置字体

     

在这个组合

 安卓TEXTSTYLE =正常|加粗|斜体
 

     

12的变体是可能的:

        常规   斜体   粗体   粗体斜体   浅   轻斜体   细   薄斜体   简明常规   简明斜体   简明粗体   简明粗体斜体   

在我工作的人申请了 styles.xml 文件中列出以此为字体家族,而我pretty的肯定这是错的:

<项目名称=机器人:fontFamily中> Roboto-Regular.ttf< /项目>

我想获得主题,为我们的应用程序设置正确(其中包括正确使用fontFamily中),并删除所有的冗余是在一些被创建之前,我看了一下文件的样式。

解决方案   

在哪里这些价值从何而来?该文档为Android:fontFamily不列出在任何地方信息

这些的确不是文档中列出。但他们提到这里下的部分字体家庭的的。该文件列出了安卓果冻豆4.1每一个新的公共API。

  

在我工作的人申请的styles.xml文件中列出以此为字体家族,而我pretty的肯定这是错的:

是的,这是错误的。你不引用字体文件,你必须使用上面的链接的文档中提到的字体名称。在这种情况下,它应该是这样的:

 <项目名称=机器人:fontFamily中>无衬线< /项目>
 

就像已经指出链接的答案,12变异是可能的:

添加在安卓果冻豆(4.1) - API 16:

常规(默认):

 <项目名称=机器人:fontFamily中>无衬线< /项目>
<项目名称=机器人:TEXTSTYLE>正常< /项目>
 

斜体

 <项目名称=机器人:fontFamily中>无衬线< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

粗体

 <项目名称=机器人:fontFamily中>无衬线< /项目>
<项目名称=机器人:TEXTSTYLE>大胆< /项目>
 

粗体斜体

 <项目名称=机器人:fontFamily中>无衬线< /项目>
<项目名称=机器人:TEXTSTYLE>粗体|斜体< /项目>
 

 <项目名称=机器人:fontFamily中>无衬线光< /项目>
<项目名称=机器人:TEXTSTYLE>正常< /项目>
 

轻斜体

 <项目名称=机器人:fontFamily中>无衬线光< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

 <项目名称=机器人:fontFamily中>无衬线薄< /项目>
<项目名称=机器人:TEXTSTYLE>正常< /项目>
 

薄斜体

 <项目名称=机器人:fontFamily中>无衬线薄< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

简明常规

 <项目名称=机器人:fontFamily中>无衬线,浓缩< /项目>
<项目名称=机器人:TEXTSTYLE>正常< /项目>
 

简明斜体

 <项目名称=机器人:fontFamily中>无衬线,浓缩< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

简明粗体

 <项目名称=机器人:fontFamily中>无衬线,浓缩< /项目>
<项目名称=机器人:TEXTSTYLE>大胆< /项目>
 

简明粗体斜体

 <项目名称=机器人:fontFamily中>无衬线,浓缩< /项目>
<项目名称=机器人:TEXTSTYLE>粗体|斜体< /项目>
 

添加在Android的棒棒堂(V5.0) - API 21:

 <项目名称=机器人:fontFamily中>无衬线介质< /项目>
<项目名称=机器人:TEXTSTYLE>正常< /项目>
 

中等斜体

 <项目名称=机器人:fontFamily中>无衬线介质< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

黑色

 <项目名称=机器人:fontFamily中>无衬线黑色< /项目>
<项目名称=机器人:TEXTSTYLE>斜体< /项目>
 

有关快速参考,这是他们都怎么看这样的:

In the answer to this question the user lists values for android:fontFamily and 12 variants (see below). Where do these values come from? The documentation for android:fontFamily does not list this information in any place (I checked here, and here). The strings are listed in the Android styles.xml file in various places, but how do these map back to the Roboto font?

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

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">Roboto-Regular.ttf</item>

I'd like to get the theme for our app set up correctly (which includes using fontFamily correctly) and remove all the redundancy that is in some of the styles that were created before I had a look at the file.

解决方案

Where do these values come from? The documentation for android:fontFamily does not list this information in any place

These are indeed not listed in the documentation. But they are mentioned here under the section 'Font families'. The document lists every new public API for Android Jelly Bean 4.1.

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:

Yes, that's wrong. You don't reference the font file, you have to use the font name mentioned in the linked document above. In this case it should have been this:

<item name="android:fontFamily">sans-serif</item>

Like the linked answer already stated, 12 variants are possible:

Added in Android Jelly Bean (4.1) - API 16 :

Regular (default):

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item> 

Italic:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>

Bold:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>

Bold-italic:

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>

Light:

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>

Light-italic:

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>

Thin :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>

Thin-italic :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>

Condensed regular:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>

Condensed italic:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>

Condensed bold:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>

Condensed bold-italic:

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>

Added in Android Lollipop (v5.0) - API 21 :

Medium:

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>

Medium-italic:

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>

Black:

<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>

For quick reference, this is how they all look like: