I hear it often nowadays: “Roboto is the default font type”. But how do I use this default font type? What I mean specifically is that in the old days when I used to download the assets, etc., I used to have to specify things like
<item name="typeface">roboto_bold</item>
Imagine I am interested in using all of say (in turn)
roboto_thin
roboto_thin_italic
roboto_light
roboto_light_italic
roboto_regular
roboto_italic
roboto_medium
roboto_medium_italic
roboto_bold
roboto_bold_italic
roboto_black
roboto_black_italic
roboto_condensed_light
roboto_condensed_light_italic
roboto_condensed_regular
roboto_condensed_italic
roboto_condensed_bold
roboto_condensed_bold_italic
roboto_slab_thin
roboto_slab_light
roboto_slab_regular
roboto_slab_bold
How do I specify them in my xml layout file or style.xml
file?
I've already found some possibilities
fontfamily
The simplest way would be add fontFamily
attribute to your specific view
like TextView
According to How to change fontFamily of TextView in Android
From android 4.1 / 4.2 / 5.0, 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)
http://developer.android.com/reference/android/widget/TextView.html#attr_android:typeface
in combination with
android:textStyle="normal|bold|italic"
this 14 variants are possible:
- Roboto regular
- Roboto italic
- Roboto bold
- Roboto bold italic
- Roboto-Light
- Roboto-Light italic
- Roboto-Thin
- Roboto-Thin italic
- Roboto-Condensed
- Roboto-Condensed italic
- Roboto-Condensed bold
- Roboto-Condensed bold italic
- Roboto-Medium
- Roboto-Medium italic
You can also do this programmatically using code as below:
textView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL));
typeface
Available built-ibn fonts are:
You can cobine them like below:
android:typeface="sans" | "serif" | "monospace"
See android:typeface.
styles.xml
You set style in styles.xml` like that:
<style name="boldText">
<item name="android:textStyle">bold|italic</item>
<item name="android:textColor">#FFFFFF</item>
</style>
and to use this style in main.xml
layout file just use:
style="@style/boldText"
You can mix TextView
attributes like in code below:
android:fontFamily="serif"
android:textStyle="italic"
Foundry
- apply custom typefaces through XML layouts and styles.
android-typeface-helper
- Typeface helper for Android
You may also want to read about Roboto
typeface and Typography Google's Design Guide.