我如何指定例如。 styles.xml中的Roboto-Medium或Roboto-Black

这样的post如何改变Android的TextView的fontFamilybuild议,可以在Android 4.2的styles.xml中指定的Roboto字体的变体归结为以下内容:

  • 定期
  • 斜体
  • 胆大
  • 加粗斜体
  • 光斜体
  • 薄斜体
  • 浓缩正规
  • 浓缩斜体
  • 粗体粗体
  • 浓缩的粗体 – 斜体

这留下了使用例如,样式TextViews的能力。 Roboto-Medium或Roboto-Black字体。

但为什么Google会添加无法用于TextViews样式的系统宽字体? 当然,必须有一些从styles.xml中指定所有Roboto字体的方法(即,不必将字体embedded为Assets和在代码中创build自定义TextViews),但是如何?

在Android 5.0上,您可以使用sans-serif-medium设置Roboto Medium。

此解决scheme取自2014年的Google ios ,在Android v21之前使用sans-serif

价值观/ styles.xml

 <style name="MyStyle"> <item name="android:fontFamily">@string/font_fontFamily_medium</item> </style> 

值/ fonts.xml

 <string name="font_fontFamily_medium">sans-serif</string> 

值-V21 / fonts.xml

 <string name="font_fontFamily_medium">sans-serif-medium</string> 

感谢Jakob Eriksson

如何在Android中更改TextView的fontFamily

 android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed android:fontFamily="sans-serif-black" // roboto black android:fontFamily="sans-serif-thin" // roboto thin (android 4.2) android:fontFamily="sans-serif-medium" // roboto medium (android 5.0) 

很有型:

 <style name="AppTheme.DefaultTextView"parent="android:style/Widget.TextView"> <item name="android:textSize">@dimen/text_view_text_size</item> <item name="android:textColor">@color/black</item> <item name="android:fontFamily">sans-serif-light</item> <item name="android:textStyle">normal</item> </style> 

在应用程序主题:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/gray</item> <item name="android:textViewStyle">@style/AppTheme.DefaultTextView</item> </style> 

我build议你使用像Android-RobotoTextView或书法的自定义库。 有了其中的一个,你可以用一个属性在xml中设置一个视图的字体,所以你可以把它放在styles.xml中。 而且它们可以与4.0以前版本的Android一起使用