18

私は現在、モバイルアプリのワイヤーフレームに取り組んでいますが、頭を滑らせているように見えることがあります: 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

しかし、一歩一歩進むことで、ボンネットの下で何が起こっているのかを理解することができました。

4

2 に答える 2

12

あなたが参照している正確なステートメントは次のとおりです。

平均して、48 dp は約 9 mm の物理サイズに変換されます

Supporting Multiple Screens docからこの画像を見ると、次のようになります。

Android密度

密度バケット (ldpi、mdpi、hdpi、xhdpi) があることがわかります。これらはそれぞれ固定密度ではなく、さまざまな密度計算に使用される固定数 (それぞれ 120、160、240、320) にマッピングされる密度の範囲です。160 が mdpi デバイスの実際の 1 インチあたりのピクセル数になることはめったにありません。単純化のために使用される抽象化された値です。

あなたの計算は正しいですが、160dpi が mdpi の抽象化された値であるため、160ppi が平均密度 (mdpi デバイスを想定) であると想定しています。あなたが参照するステートメントが実際に真実である場合、明らかにそうではありません。平均して約 200ppi であり、最終的に hdpi として分類されるデバイスがたくさんあると思います。つまり、(48dp / 200ppi) * 1.5 * 25.4 mm/インチ = 9.14400 mm になります。あくまでも推測ですが、平均が160ppiではないことが根本的な原因だと思います。

アップデート:

これは、デザイン サイトのドキュメントからの別の引用です。

要素の高さと幅が少なくとも 48 dp になるように設計すると、[...] ターゲットが表示される画面に関係なく、推奨されるターゲットの最小サイズである 7 mm よりも小さくなることはありません。

したがって、サイズは > 7mm から少なくとも 9mm までさまざまです (9mm が平均であると仮定すると、最大範囲は < 11mm になるはずです)。はい、48 dp はすべての画面で「ほぼ」同じサイズである必要がありますが、「ほぼ」が実際に何を意味するかは実際には指定されていません。7.62mm は範囲内です。それらの 9mm の値は、指定されていない ppi である「平均」のためのものです。

于 2012-04-11T21:00:03.370 に答える
1

厳密に言えば、Android スマートフォンとタブレット( TV なし、Wear なし、デスクトップなし、iOS なし)について言えば:世界の価値観のようです

どこでも特定の物理サイズ以上で安全にレンダリングできる最小の DP 値を見つける必要がありました。一部のデバイスの構成が不適切であることが判明しました (このリストでは、Sony Experia C4 が 200 dp/インチで最悪であり、次に Dell Venue 8 が 180 dp/インチで、次に LG G3 が 178 dp/インチです) (ここでは、物理的ではなく論理 DP について話します) DPI)。これらのデバイスでは、すべてが平均よりも小さく見えます。他のすべては 170..144 dp/インチに近いです。

この情報を別の場所で見つけてデータに同意し、さらに多くのデバイスがある場合は、さらに多くの不正なデバイスが存在する場合に備えて便利です.

ページから抽出したいくつかの数字を次に示します: (Android の携帯電話とタブレットのみ)

Max: 200 dp/in  (smallest)
Min: 141 dp/in  (biggest)

これらの数値を使用して、さまざまな個別の dp 値から選択できる最小/最大 mm サイズの表を次に示します (最も近い 1/10 mm に丸められます)。

dp  min  max mm
36  4.6   6.5
37  4.7   6.7
38  4.8   6.8
39  5.0   7.0
40  5.1   7.2
41  5.2   7.4
42  5.3   7.6
43  5.5   7.7
44  5.6   7.9
45  5.7   8.1
46  5.8   8.3
47  6.0   8.5
48  6.1   8.6
49  6.2   8.8
50  6.4   9.0
51  6.5   9.2
52  6.6   9.4
53  6.7   9.5
54  6.9   9.7
55  7.0   9.9
56  7.1  10.1
57  7.2  10.3
58  7.4  10.4
59  7.5  10.6

方式

mm = <dp> * 25.4 / <dp/in><dp/in>、このデバイス リストで見つけた最大密度 dp/in (200) または低密度 (141) のいずれかです。

48dp * 25.4 / 200 = 6.096mm

丸みを帯びた: 6.1 mm -- 彼らが主張している「安全な」7mm より下です。

また、48 dp がスマートフォンやタブレットの画面で「9 mm」に達することはありません。最大は 8.6 です (これは近い値ですが、確かに平均ではありません)。

于 2016-03-12T21:11:29.573 に答える