Android 的幾個單位dp sp px的轉換

2021-07-22 22:08:05 字數 1591 閱讀 5380

由於專案只出了一套蘋果的標註圖1242x2208,所以我們的就得自己計算轉換成android的單位。我們android的目標解析度是1080x1920 ,dpi是480的;1080是1242的1.15倍。而android的1080x1920,dpi=480的裝置要轉成dp,dp=px/3;所以我們用蘋果的設計圖的時候公式就是 dp=px/3.45;

大部分的尺寸都是在layout裡面寫固定了,但是有些是動態計算了,所以收集了dp、sp、px的相互轉換方法,

/**

* 將px值轉換為dip或dp值,保證尺寸大小不變

** @param pxvalue

* @param context

* (displaymetrics類中屬性density)

* @return

*/public static int px2dip(context context, float pxvalue)

/*** 將dip或dp值轉換為px值,保證尺寸大小不變

** @param dipvalue

* @param context

* (displaymetrics類中屬性density)

* @return

*/public static int dip2px(context context, float dipvalue)

/*** 將px值轉換為sp值,保證文字大小不變

** @param pxvalue

* @param context

* (displaymetrics類中屬性scaleddensity)

* @return

*/public static int px2sp(context context, float pxvalue)

/*** 將sp值轉換為px值,保證文字大小不變

** @param spvalue

* @param context

* (displaymetrics類中屬性scaleddensity)

* @return

*/public static int sp2px(context context, float spvalue)

在貼上我的dimens.xml檔案的部分內容。
10sp

12sp

14sp

16sp

18sp

20sp

22sp

24sp

4.3dp

5.8dp

8.7dp

11.6dp

13dp

14.5dp

16dp

17.4dp

19.4dp

20dp

29dp

35dp

36.2dp

38dp

43.5dp

46dp

53dp

58dp

64dp

74dp

110dp

133.3dp

145dp

168dp

關於css的幾個單位

px 畫素點 30 百分比,相對於父級的寬高百分比。移動端困局 高度無法與寬度一致,可以使用js設定。em 相對於當前模組的字型大小,web預設為16px,可以進行更改。相當於1em 16px,0.5em 8px,可以精確到小數點後三位。可以用來設定寬高 rem 相對於html的字型大小。1rem ...

Android支援的長度單位

為了使使用者介面能夠在現在和將來的顯示器型別上正常顯示,建議大家始終使用sp作為文字大小的單位,android預設的字型大小也是用的sp。將dip作為其他元素的單位,比如長度 高度。當然,也可以考慮使用向量圖形,而不是用位圖。dp是與密度無關,sp除了與密度無關外,還與scale無關。如果螢幕密度為...

關於常用的幾個單位解釋

px畫素 pixel 相對長度單位。畫素px是相對於顯示器螢幕解析度而言的 也就是說是跟物理裝置有關的 拿高清屏和普通屏來做對比就是普通螢幕的1個畫素點就是1個物理畫素點,而高清屏的1個畫素點是4個物理畫素點。em相對長度單位。相對於當前物件內文字的字型尺寸。如當前對行內文字的字型尺寸未被人為設定,...