1. 程式人生 > >關於android中的單位(dp、sp)

關於android中的單位(dp、sp)

字號 兩個 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)