1. 程式人生 > >密度無關的畫素(DIP)

密度無關的畫素(DIP)

指一個抽象意義上的畫素,程式用它來定義介面元素。它作為一個與實際密度無關的單位,幫助程式設計師構建一個佈局方案(介面元素的寬度,高度,位置)。
一個與密度無關的畫素,在邏輯尺寸上,與一個位於畫素密度為160DPI的螢幕上的畫素是一致的,這也是Android平臺所假定的預設顯示裝置。在執行的時候,平臺會以目標螢幕的密度作為基準,“透明地”處理所有需要的DIP縮放操作。要把密度無關畫素轉換為螢幕畫素,可以用這樣一個簡單的公式:pixels = dips * (density / 160)。舉個例子,在DPI為240的螢幕上,1個DIP等於1.5個物理畫素。我們強烈推薦你用DIP來定義你程式的介面佈局,因為這樣可以保證你的 UI在各種解析度的螢幕上都可以正常顯示。

 dip到pixel轉化
Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, r.getDisplayMetrics());

這樣再繪圖時候在不同解析度下,pixel的值是不同的。