Androidの文字サイズで使われるspの倍率
Androidアプリの開発者なら文字サイズを指定する際に単位にspを使うべきだという話は聞いたことがあると思います。spで指定しておくと、OSで設定された倍率が自動的に掛かるからです。
Android 4.0以降だとOSの文字サイズは「設定→ディスプレイ→フォントサイズ」で変えられます。
(機種によって呼び方が違うかもしれません。)
文字サイズの設定と倍率の対応は次のようになっています。
設定 | 倍率 |
---|---|
小(Small) | 1 sp = 0.85 dp |
中(Normal) | 1 sp = 1 dp |
大(Large) | 1 sp = 1.15 dp |
極大(Huge) | 1 sp = 1.3 dp |
(これらの値は機種やOSのバージョンによって異なるかもしれません。)
textSizeをspで指定する場合はwidthやheightをwrap_contentやmatch_parentにした方が無難です。widthやheightをdpで指定すると倍率によっては、はみ出す可能性があるので、余白も含めて余裕を持たせる必要があります。