pxandroid
⑴ android中px,dp,dip和sp有什麼不同
px就是一個像素寬度-獨立像素(設備),設備獨立像素(dip)是你想使用的設備的字體大小,而且設備獨立像素對於所有的事情。在這里設備獨立像素——dphttp://developer.android.com/guide/topics/resources/more-resources.html#Dimension
Px
像素-相當於屏幕上的實際像素。
In
英寸-基於屏幕的物理尺寸
Mm
毫米-基於屏幕的物理尺寸
Pt
點-基於屏幕的物理尺寸,英寸的72分之一
Dp
密度-獨立像素-一個基於屏幕的物理密度的抽象的單位。這個單位和160解析度的屏幕是成比例的,所以在一個160解析度的屏幕下,1dp就是1px。Dp和像素的比率將會隨著屏幕的密度改變而改變,但是並不一定就是正比。注意:編譯器既接受「dip」也接受「dp」,盡管dp比sp更符合。
Sp
刻度-獨立像素-它就像dp單位,但是它也取決於用戶偏好的字體大小。當指定字體大小的時候,我推薦您使用這個單位,因為它既調整了屏幕的密度,也調整了使用者的偏好。
⑵ Android編程中,sp和px和dp有什麼區別啊,或者說給代表什麼
sp: 一般用來設置字體的大小。設置sp時,如果設置系統的字體為大、小等,應用程序的字體也會跟隨系統變化。
px: 是絕對像素點。設置大小時5px就是五個像素點的長度。
dp: device independent pixels(設備獨立像素),一般我們為了支持WVGA、HVGA和QVGA 推薦使用這個,不依賴像素。
⑶ iOS、Android等開發中px、ppi、pt、pd、dpi的個人理解
作為一名iOS開發者,以前對這些概念懵懵懂懂,最近看了很多資料記錄下對這些概念的理解,主要以iOS和Android平台為切入
在iphone3gs的時候,屏幕的解析度為320x480px、ppi =164 ,這時蘋果把iOS系統的邏輯解析度也設計為320x480pt 、dpi = 164 ,並且後面一值遵循這個UI設計規范(1pt 的大小約等於ppi為164的情況下單個像素的大小)。在沒有出現plus及iphonex系列的之前的設備的都是dpi≈164, 1pt 的物理大小是固定的,但對應的像素有可能不一樣,後期出現的plus及iphonex系列的dpi都比164小一點點,所以1pt的大小也對應的有變大一點點,但是這變化是很小的,應該是蘋果系統級別的大屏適配吧 。
蘋果的設計規范一直是在保持dpi基本不變的情況下,設備解析度和邏輯解析度的是整數倍的縮放關系,但是在plus系列中,雖然開發的時候我們使用@3倍關系做設計開發,但是實際上他們之間是沒有@3倍關系的,實際的縮放應該是@2.6倍,那為什麼蘋果不按照規范來呢,這個我也不知道,但是可以分析一下如果蘋果嚴格按照@3倍來應該是怎樣的。
可能因為Android的開源屬性和終端太亂太雜,讓安卓不能像iOS那樣對於不同的設備在系統級別設置邏輯解析度來方便開發者開發,但是Android也有很好的解決方案就是使用pd作為邏輯解析度,從pd定義可知(幕像素點密度為160ppi時1px長度),pd是個固定的物理大小單位。因此如果以pd計算dpi的話,那dpi在不同設備上應該是一樣的160dpi,和iOS以dpi≈164基本差不多,所以在Android、iOS設計開發的時候才會把他們兩等同。
android圖