Android開發PX與DIP的清晰解釋[魔豆之路]

px(pixels)——像素,不依賴設備。 android

dip  (device independent pixels)——等同 dp,與設備相關。通常咱們爲了支持WCGA、HVGA和QVGA推薦使用這個,不依賴於像素。
sp (scaled pixels—best for text size)——帶比例的像素,主要用於字體顯示。

 

到底pxdip有什麼區別呢?
dip 何時等於px? 何時不等於呢?
  1. 在Density是160的設備上,1dip = 1px, HVGA屏density=160;換到一個Density是240的設備上,dip和px體現出來的大 小就不同了, 1.5 px = 1 dip。
  2. 一般而言:WQVGA(160 X  240)屏density=120;QVGA(240 X 320)屏density=120;HVGA(320 X 480)屏density=160;WVGA(480X 800)屏density=240;
  3. VGA屏是標準屏640 X 480 的分辨率
density值表示每英寸有多少個顯示點(密度),與分辨率(寬X高的像素點)是兩個概念。
當屏幕density=240時, 使用hdpi標籤的資源
當屏幕density=160時,使用mdpi標籤的資源
當屏幕density=120時,使用ldpi標籤的資源

 

不加任何標籤的資源是各類分辨率狀況下共用的。佈局時儘可能使用單位dip,少使用px。 佈局

換算公式爲: 字體

pixs =dips * (densityDpi/160).
dips=(pixs*160)/densityDpi

 

如何得到設備的屏幕分辨率和屏幕密度?
如分辨率爲480*800,密度爲240的設備,方法以下:
DisplayMetrics dm =getResources().getDisplayMetrics();
dm.densityDpi=240
dm.widthPixels=480
dm.heightPixels=800


聲明: 本文由( 魔豆先生 )原創編譯,轉載請保留連接: Android開發PX與DIP的清晰解釋 spa

相關文章
相關標籤/搜索