解像度に応じた単位が必要となる。
そこで画面密度に応じたピクセルを定義する。
dpは仮想的なピクセルの独立単位。
160dpiの場合、dpはpixelと一致する。
(160dpiはAndroidでは中程度の解像度としている。)
dpを用いた場合、システムがどんな画面でも統一した位置情報を提供、取得する。
ピクセルへの変換は単純である。すなわち:
px =dp *(dpi/160)
で表される。
例えば、240dpiの画面の場合、1dpは1.5pxとなる。
アプリケーションのUIを作成する場合、
dp単位を用いて設計しなければならない。
オリジナルソース(英語):
Supporting Multiple Screens
ここの説明がわかり易かった。
[Android] Android特有の単位 “dp” と “sp”