What is meant by Ems? (Android TextView)
android:ems
or setEms(n)
sets the width of a TextView to fit a text of n 'M' letters regardless of the actual text extension and text size. See wikipedia Em unit
but only when the layout_width
is set to "wrap_content"
. Other layout_width
values override the ems width setting.
Adding an android:textSize
attribute determines the physical width of the view to the textSize * length of a text of n 'M's set above.
It is the width of the letter M in a given English font size.
So 2em is twice the width of the letter M in this given font.
For a non-English font, it is the width of the widest letter in that font. This width size in pixels is different than the width size of the M in the English font but it is still 1em.
So if I use a text with 12sp in an English font, 1em is relative to this 12sp English font; using an Italian font with 12sp gives 1em that is different in pixels width than the English one.
Ems is a typography term, it controls text size, etc. Check here