IT情報あれこれ

IT系の情報を雑多に

Androidでのdp/spの使い分け

概要

Androidレイアウトを作成する際に、文字やViewのサイズの指定にdpやspを使用します。

これら2つの違いについて説明します。

dpとspについて

dp(Density-Independent Pixel):密度非依存ピクセル。画面密度が変わっても見ため(大きさ)が同じように表示されるのでViewのサイズ指定に使用します。

sp(Scale-independent Pixel):スケール非依存ピクセル。dpの機能に加え、デバイスで変更できる文字サイズも考慮して表示サイズが計算されるので文字サイズの指定に使用します。

dpとspの違い

spで指定した大きさはデバイス指定の文字サイズに応じて変化してしまう。

一方で、dpで指定した大きさはデバイス指定の文字サイズに応じて変化しない。

画面上のテキストサイズはデバイス指定の文字サイズに応じて変化させたい。

なので、テキストサイズにはspを指定するのうが通例となっている。

つまり、

  • dp → デバイスの表示サイズ変更でのみ大きさが変化する
  • sp → デバイスの表示サイズ、文字サイズ変更で大きさが変化する