【Android Studio/Kotlin】dpとsp、px、pt、inの違いや使い方!サイズの指定方法

この記事からわかること
- Android Studio/Kotlinでサイズを指定する際の単位の種類
- dpやsp、px、pt、inの違い
- dpをpxに変換する計算式
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
ピクセルやdpi、ピクセル密度(Density)などの詳細な意味は以下の記事を参考にしてください。
Androidでサイズを指定する単位の種類
Androidでサイズを指定できる単位は複数存在します。それぞれ役割が異なるので適切なタイミングで使わないと思わぬUI崩れを起こす原因になるかもしれません。
- dp:密度非依存ピクセル
- sp:スケーラブルピクセル
- px:ピクセル
- pt:ポイント
- in:インチ
dp:密度非依存ピクセル
dp
とはDensity-independent Pixelsの略で日本語では密度非依存ピクセルという意味になります。これは端末による画面密度(DPI: Dots Per Inch)の違いを吸収して統一された大きさで表示させるために使用されます。画面の物理的なサイズは同じでも画面密度が異なれば10pxで指定したサイズに差異が生まれます。
これを防ぐためにdpを使って指定することで画面に表示する物理的なサイズを統一させることができます。例えば1dpは、中密度画面(160dpi)の1pxとほぼ等しいなります。
dp
はViewのサイズや余白に使用されます。
sp:スケーラブルピクセル
sp
とはScale-independent Pixelsの略で日本語ではスケール非依存ピクセルという意味になります。dp同様に画面密度に依存しないサイズを指定できますが、ユーザーが設定したフォントサイズの環境設定に応じて変化するためテキストの文字サイズに指定します。
px:ピクセル
px
は物理的なピクセル単位です。ピクセルが画面の密度に依存し、異なるデバイス間でのサイズの一貫性が保つことができないためレスポンシブなデザインには適していません。
dpをpxに変換する計算式
dpで指定した値をpxに変換するには以下の式に当てはめることで算出可能です。
px = dp * (dpi / 160)
pt:ポイント
pt
は1インチの1/72に相当する印刷用の単位です。テキストサイズを印刷物と同等のスケールで指定する場合に利用されることがあります。
in:インチ
in
はインチ単位です。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。