I've been following the Google official Material Design guidelines (http://www.google.com/design/spec/style/typography.html) on typography but I find them to be quite lacking. For instance, they list 10 styles you should use for things like body, subhead, title, headline display1, display2, etc. type text in your app... This leads me to the first problem.
Problem #1: How does one know what a "subhead" is, or a "title" vs "headline", or when should "display1" be used as opposed to "display4", are there standards for these items?
Moreover, the guidelines state that leading space should be built into the line-height of the text. Therefore, problem 2.
Problem 2#: How can I add "leading" space for text in Android, is this relevant Android guidance?
Problem #3: Although I've downloaded the latest version of Roboto, my medium fonts look absolutely bold, as opposed to Google's elegant and slightly thicker medium fonts, how can I confirm my font is actually different than Googles?
Thank you very much
"Show me the code": not mine, but see comment below for one option, and also how Plaid app (Butcher) tacked typography challenges by visiting its source on Github (BaselineGridTextView
class).
Disclaimer: I'm by no means a reference in this subject, but your question is a month old without any answers, even though it is important and its importance will only grow from now on. That said, I'll try to, at least, give some light and offer my head because of the possible mistakes.
Problem #1: How does one know what a "subhead" is, or a "title" vs "headline", or when should "display1" be used as opposed to "display4", are there standards for these items?
These are common, standardized, abstract text entities that came to us from the traditions in printed publishing.
Other programs use these (part, or all) concepts themselves with slightly variations:
The general concept seems to be that these are abstract entities that represent gradients of importance in text sets, and may have flexible rules between publications as long as it is used consistently within a publication, theme, application etc..
Problem 2#: How can I add "leading" space for text in Android,
This is for those places where you mix TextView
s with different styles, like in the image example (or with text spans, of course).
Let me be honest: right now, for emergency purposes, I'm using my eyes with superimposed grids to check my leading. I'm starting with the leading size, then I subtract the font size of the following text line and some small amount as the descender of the current line. Then I make tiny small optical adjustments if needed. It would be nice if these elements (x-height, cap height, descender etc.) could be calculated exactly, but I honestly didn't dive into this yet (but it's probably possible). I'm satisfied with my “eyeometer” while I don't perfect MD in my layouts.
However, and I just looked at this (didn't try it out), I believe you can dive into FontMetrics
, measuring the fields and applying the proper dimensions on the fly between the two TextView
s shown above. I'd try that first (ascent
of the next and descent
of the previous).
is this relevant Android guidance?
Yes, it is. Very much. Place a text below another, when they have different styles. Like a title followed by a body, and try to just take a wild guess: it won't work and your app won't be consistent with the system. See above.
Problem #3: Although I've downloaded the latest version of Roboto, my medium fonts look absolutely bold, as opposed to Google's elegant and slightly thicker medium fonts, how can I confirm my font is actually different than Googles?
Please tell us where exactly you're getting the two samples to compare. Font rendering may be affect by many different things, and each system uses its own hinting algorithms, besides many other things. There are slight variations even between different Roboto versions and different Android versions. Surely medium looks “boldy” compared to regular, but not actually bold.
You can check the fonts in your sdk/platforms/android-APIVERSION/data/fonts folder. Rendering with Ubuntu 15.04 (slight hinting), out of the box, as of android-22:
I think it stays accordingly to the sample.
To compare with something also widely available, this is (part of) the Ubuntu font family (regular, medium and bold, respectively). In my opinion, medium also comes closer to bold than regular:
Minion Pro (regular, medium, semi and bold). It is more evenly weighted possibly because it also offers a semibold variant, but we are talking about a serif font made for fine print and with much more time in the market to have been continuously refined:
I hope this helps.