ems
, trái với niềm tin phổ biến (hoặc ít nhất là từ hầu hết các chủ đề về ems ở đây), không dựa trên chiều rộng của một chữ 'M'.
Ban đầu nó giống như vậy trong kiểu chữ, nhưng trong phương tiện kỹ thuật số, bao gồm cả Android, ý nghĩa của nó đã được chuyển sang kích thước của kiểu chữ được sử dụng, hay nói cách khác là chiều cao của nó (không bao gồm bất kỳ phần đệm nào cho dấu / dấu).
Vì vậy, điều đó có nghĩa là khi bạn chỉ định ems
cho TextView, nó sẽ sử dụng nó textSize
làm cơ sở và nhân nó với giá trị đã ems
chỉ định.
Ví dụ: nếu bạn đặt TextView 16sp ems
thành 4, chiều rộng của nó sẽ rộng 64sp. Bạn có thể dễ dàng kiểm tra nó bằng cách sử dụng hai TextView ( includeFontPadding
được đặt thành false) cạnh nhau bên trong ConstraintLayout (để tận dụng nó layout_constraintDimensionRatio
).
sp
.