物理尺寸:屏幕對角線的長度,如4寸(3寸=10cm)
分辨率:屏幕顯示的總像素,如480*800(寬480個像素點,高800像素點)
像素密度:dpi,每英寸點數(1英寸=2.54cm)
某邊的分辨率(總像素數)= 該邊物理尺寸(單位是英寸) × 像素密度
手機屏幕密度:低密度(ldpi,120dpi),中密度(mdpi,160dpi),高密度(hdpi,240dpi),超高密度(xhdpi,320dpi)等
px:屏幕實際的象素。例如,320*480的屏幕在橫向有320個象素,在縱向有480個象素。
dip:設備獨立像素,以160dpi的設備爲參照,在160dpi設備上1dip=1px,pixs = dips * (density/160)
dp:等同於dip
sp:用於標識字體的,它不僅跟屏幕尺寸有關,還跟設置的系統字體大小有關,用戶修改系統字體大小會改變字體。
根據 google 的建議,TextView 的字號最好使用 sp 做單位,而且查看TextView的源碼可知 Android 默認使用 sp 作爲字號單位。在160dpi屏幕中,當字體大小爲100%的時候,1sp=1px。
public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}
用sp和dp代替px,在不同dpi屏幕下,呈現的高度大小是相同的,更接近物理呈現。