Android文字大小sp和dp的差異

注意到這個問題的原因是因為,每個人手機系統文字大小都不一樣,App title或者有些TextView裡面的字變大,導致title文字被切掉一半等問題。


結論:

  1. 當修改系統字體大小時,字體大小以dp為單位時,大小不變。
  2. 當修改系統字體大小時,字體大小以sp為單位時,大小隨之變化。

dp

Android 上的抽象單位。對應 160dpi 螢幕上的 px 數量。160dpi 情況下 1dp = 1px 。

sp 

Android 上的文字單位。如果使用者設定系統文字尺寸是「正常」時 1sp = 1dp,但系統文字尺寸是「大」或「超大」時 1sp > 1dp。

所以在160 dpi 情況下,1px = 1dp = 1sp


參考資料:
https://www.jianshu.com/p/e89bc2890136
https://blog.akanelee.me/2018/07/31/dpi-px-pt-dp-sp/

留言

這個網誌中的熱門文章

Android - 使用 adb 安装apk

Android TextView autosizing 自動調整大小

Kotlin - 實現Android中的Parcelable