DIP(設備獨立像素)

設備獨立像素(又稱設備無關像素 Device Independent Pixels 、密度獨立性 Density Independent或設備獨立像素,簡稱DIP或DP)是一種物理測量單位,基於計算機控制的坐標系統和抽象像素(虛擬像素),由底層系統的程式使用,轉換為物理像素的套用。

典型的用途是允許移動設備軟體將信息顯示和用戶互動擴展到不同的螢幕尺寸。允許應用程式以抽象像素為單位進行測量,而底層圖形系統將應用程式的抽象像素測量值轉換為適合於特定設備的物理像素

基本介紹

  • 中文名:設備獨立像素 或 密度獨立性
  • 外文名:Device Independent Pixels or  Density ndependent
  • 含義:定義UI布局時使用的虛擬像素單位
  • 單位:dp
套用介紹,系統套用,

套用介紹

套用顯示在密度不同的螢幕上時,如果它保持用戶界面元素的物理尺寸(從 用戶的視角),便可實現“密度獨立性” 。
保持密度獨立性很重要,因為如果沒有此功能,UI元素(例如 按鈕)在低密度螢幕上看起來較大,在高密度螢幕上看起來較小。這些 密度相關的大小變化可能給套用布局和易用性帶來問題。

系統套用

Android系統可幫助您的套用以兩種方式實現密度獨立性:
  • 系統根據當前螢幕密度擴展 dp 單位數
  • 系統在必要時可根據當前螢幕 密度將可繪製對象資源擴展到適當的大小
圖2不支持不同密度的示例套用在低、中、高密度螢幕上的顯示情況圖2不支持不同密度的示例套用在低、中、高密度螢幕上的顯示情況
圖3支持不同密度的示例套用在低、中、高密度螢幕上的顯示情況圖3支持不同密度的示例套用在低、中、高密度螢幕上的顯示情況
圖2中,文本視圖和點陣圖可繪製對象具有以像素(px單位)指定的尺寸,因此視圖的物理尺寸在低密度螢幕上更大,在高密度 螢幕上更小。這是因為,雖然實際螢幕尺寸可能相同,但高密度螢幕 的每英寸像素更多(同樣多的像素在一個更小的區域內)。圖3中,布局 尺寸以密度獨立的像素(dp單位)指定。由於密度獨立像素的基線是中密度螢幕(中密度為160dpi,Android中六種通用的密度之一),因此具有中密度螢幕的設備看起來 與圖 2 一樣。但對於低密度和高密度螢幕,系統將分別增加和減少密度獨立像素值,以適應螢幕。
大多數情況下,確保套用中的螢幕獨立性很簡單,只需以適當的密度獨立像素(dp單位)或"wrap_content"指定所有 布局尺寸值。系統然後根據適用於當前螢幕密度的縮放比例適當地縮放點陣圖可繪製對象,以 適當的大小顯示。
點陣圖縮放可能導致模糊或像素化點陣圖。為避免這些偽影,應為不同的密度提供替代的點陣圖資源。例如,應為高密度螢幕提供解析度較高的點陣圖,然後系統對中密度螢幕將使用這些點陣圖,而無需調整點陣圖大小。
dp與ppi計算
dp = dx * (dpi / 160)
例如,在 240 dpi 螢幕上,1 dp 等於 1.5 物理像素。
注意:因為Android系統以“中”密度螢幕假設的基線密度,故該公式中dpi除以160dpi。在定義套用的 UI 時應始終使用 dp 單位 ,以確保在不同密度的螢幕上正常顯示 UI。

相關詞條

熱門詞條

聯絡我們