首先,我們來看看單位dp是怎么一回事,dp是一種單位,使用它,你可以在高、低分辨率上獲得一樣的空間表現,也就是說,它是像素無關的。
dp計算公式:160*pix/ppi(pix是你要計算的高度或者寬度的分辨率,ppi是像素密度,超過320就是retina display)
比如我們要在layout-sw360dp(表示,如果最小寬度滿足360dp,則加載這個里面的layout。)
比如note2 分辨率是720*1280,ppi是267
安卓根據手機ppi 分為 160 240 320 480
超過了就按照更高的ppi檔,因此計算采用的ppi是320。
因此,可以得出 note2,在寬度上的dp是 160*720/320 = 360
因此會加載sw360dp里面的數據。
我們那個對比例子,sony的 tablet S,他的ppi :160(簡單計算ppi網站,輸入寬高 像素,屏幕尺寸,得到ppi)
寬高:1280*800
我們的計算公式 160*1280/240 = 853
實際體驗中,發現值在800~820之間,不知道為啥?
我們設置sw800dp之后,發現note使用的默認布局,而tablet S使用的是sw800dp下的布局。