Android中dip和sp的真正區別

2021-07-06 05:01:11 字數 930 閱讀 3259

估計很少有人知道android裡面dip和sp的真正區別,無論你在網上怎麼搜,搜出來的結果都是告訴你字型用sp,尺寸用dip 。

可是為什麼字型用sp呢?谷歌為什麼要這麼定呢?這兩個單位之間到底有什麼區別呢?

其實這兩個單位在大小上沒有任何區別。

唯一的區別就是在系統設定裡。

你手機的系統設定是不是有這麼個可以調字型大小的選項?

當你用sp做字型單位時,字型會跟著這個設定項變大變小;

當你用dip做字型單位時,自己不會跟著變大變小。

我做了這麼個測試:

手機是紅公尺note   5.5英吋  720p:

標準字型大小模式下:16dip = 32px ,巨無霸模式:依舊是16dip = 32px

此時把dip換為sp ,標準字型大小下:16sp = 32px,巨無霸模式:16sp = 45px

好,那麼問題來了,到底該不該用sp做字型單位呢?我的答案是:不應該。

因為sp會跟著系統設定的字型大小變化,那麼當你真的用sp做字型單位了,你的應用裡面的字型就會跟隨系統變大變小。

於是帶來的問題某些設定了固定高度的view item就被撐開導致顯示不全了。於是你精心繪製的布局就變的你都不認識了

當年我就被坑了,乙個測試人員的手機字型調整為大號,而我的通知欄布局是用的sp做字型單位,於是通知欄就顯示的特別醜。

不過所有的事情都是見仁見智的,如果你是布局繪製的超級高手,可以駕馭這些變化,你完全可以用sp做字型單位了。

******************************=

如果你覺得幫到了你,請給作者打賞一口飯吃:

Android中的sp和wp指標

原址 經常會在android的framework 中發現sp和wp這樣的指標,平時看的時候都把他當成乙個普通的指標封裝過掉了,這幾天終於忍不住了,想深入了解一下。相關的 frameworks base include utils refbase.h frameworks base libs util...

Android中的sp和wp指標

經常會在android的framework 中發現sp和wp這樣的指標,平時看的時候都把他當成乙個普通的指標封裝過掉了,這幾天終於忍不住了,想深入了解一下。相關的 frameworks base include utils refbase.h frameworks base libs utils r...

Android中的sp和wp指標

經常會在android的framework 中發現sp和wp這樣的指標,平時看的時候都把他當成乙個普通的指標封裝過掉了 frameworks base include utils refbase.h frameworks base libs utils refbase.cpp sp和wp都是乙個模板...