android:fontFamily的有效值及其对应的值是什么?

在该问题的答案中,用户列出的值android:fontFamily和12个变体(请参见下文)。这些价值从何而来?的文档android:fontFamily未在任何地方列出此信息(我在此处和此处进行了检查)。这些字符串在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),并删除在查看文件之前创建的某些样式中的所有冗余。


慕桂英3389331
浏览 2861回答 3
3回答

明月笑刀无情

这些价值从何而来?android:fontFamily的文档未在任何地方列出此信息这些确实没有在文档中列出。但他们提到这里下的部分“字体家庭”。该文档列出了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>&nbsp;斜体:<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>

梵蒂冈之花

据我所知,您无法在xml或主题中声明自定义字体。我通常只制作自定义类来扩展textview,这些类在实例化时设置自己的字体,并在我的布局xml文件中使用它们。即:public class Museo500TextView extends TextView {&nbsp; &nbsp; public Museo500TextView(Context context, AttributeSet attrs) {&nbsp; &nbsp; &nbsp; &nbsp; super(context, attrs);&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf"));&nbsp; &nbsp; }}和<my.package.views.Museo900TextView&nbsp; &nbsp; &nbsp; &nbsp; android:id="@+id/dialog_error_text_header"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_width="190dp"&nbsp; &nbsp; &nbsp; &nbsp; android:layout_height="wrap_content"&nbsp; &nbsp; &nbsp; &nbsp; android:gravity="center_horizontal"&nbsp; &nbsp; &nbsp; &nbsp; android:textSize="12sp" />
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android