私は現在、モバイルアプリのワイヤーフレームに取り組んでいますが、頭を滑らせているように見えることがあります: Android Design Guidelinesでは、次のように述べています。
平均して、48 dp は約 9 mm の物理サイズに変換されます (多少のばらつきがあります)。
ただし、Android Developers Dev Guidedp
によると、次の式を使用してa を計算します。
密度に依存しないピクセルは、160 dpi 画面上の 1 つの物理ピクセルに相当します。これは、「中」密度の画面に対してシステムが想定するベースライン密度です。実行時に、システムは、使用中の画面の実際の密度に基づいて、必要に応じて dp 単位のスケーリングを透過的に処理します。dp 単位から画面ピクセルへの変換は簡単です: px = dp * (dpi / 160)。たとえば、240 dpi の画面では、1 dp は 1.5 物理ピクセルに相当します。アプリケーションの UI を定義するときは、常に dp 単位を使用して、さまざまな密度の画面で UI が適切に表示されるようにする必要があります。
簡単にするために、160 dpi でデザインを行っているとしましょう。これにより、グラフィックは推奨される標準に従って適切なサイズになります。印刷するときは、ドキュメントを 2.22 (160dpi/72dpi) 縮小して、印刷結果が紙上の実際の物理サイズになるようにします。
ボタンの高さを 48 dp にしたい。しかし、私が読んだすべてに従って計算すると、ボタンの高さとして 48 を指定しても、9 mm のサイズにはほど遠いものです。
48dp / 160dpi = 0.3 インチなので、7.62 mm...
明らかに欠けている/間違っていることは何ですか? その9mmはどこから来るのですか?
ありがとう!
アップデート
これが、受け入れられた回答から何が欠けているかを理解するのに役立ちました。
例として、200 の画面密度を取り上げます。Android は 240 を使用して計算を行います。そう:
- 240dpi / 160dpi = スケールの 1,5
- 48 dp * 1.5 のスケール = 78 物理ピクセル
- 78 px / 240dpi = 0.3 インチ (48dp / 160dpi とまったく同じ)
ここでのコツは、実際のデバイス密度が 200 であることです。したがって、ピクセルは 240dpi の画面よりも大きく表示されます。200dpi デバイスの物理サイズを取得するには、両方の解像度の差を取得し、それを 0.3 インチに適用する必要があります。
- 240dpi / 200dpi = 1,2
- 0.3 インチ * 1.2 の差 = 0.36 インチ 9,144mm
これは@kabukoが述べたものとまったく同じです。
(48dp / 200ppi) * 1.5 * 25.4 mm/インチ = 9.14400
しかし、一歩一歩進むことで、ボンネットの下で何が起こっているのかを理解することができました。