關於android中的單位(dp、sp)
阿新 • • 發佈:2017-05-21
字號 兩個 metrics 不一定 ont ace white 超級 style
android讓人頭疼的適配問題。
---------
Android 中的單位大概有這些:
經常使用的dip、sp。有時候用到px。
---------
介紹兩個類:
TypedValue:有一些單位轉換相關的方法。
DisplayMetrics:
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);DisplayMetrics有這些單位轉換相關的字段:
---------
它們的關系:
dip = DisplayMetrics.density * px
= (densityDpi / 160) * px
sp和dip同樣。僅僅是sp除了會隨著設備的不同而不同外,還受用戶設置的影響(一般路徑是在:設置-外觀-字體大小)。並且,讓人憤憤的是,在 Sony Xperia C3 上(不知道是否全部 Xperia 中都是這樣),系統默認的字號顯示是“正常”時,實際的顯示效果跟其它同等機器中的“大”號字體是一樣的。就是說,有些系統中默認的字號設置跟 Android 原生系統不一致。
這樣你怎麽控制顯示的效果?
---------
是否要用dip、sp?
dip要用。非常大程度上解決適配問題。 sp要用?我的建議是不用。這取決於你。假設你的app是專門給眼睛不好的(比方辛苦的長輩們)人用的,你能夠直接就指定超級大號的字體。假設不考慮視力的話,為了美觀,不要讓用戶改變字體大小。假設覆蓋到這兩類人。就用sp吧(也不一定~)。
關於android中的單位(dp、sp)