dp、dip、px、spの測定値 を読んでいましたが、dp/dpi vs ppi vs px vs inchについてまだ質問があります。私はそれらを比較することはできません...インチが最大ですか?
彼らは160 dpiは1インチあたり160ピクセルを意味すると言います。つまり、1インチには160ピクセルが含まれますか?
また、160 dpiの画面で1ピクセル= 1 dpと言います。つまり、1ピクセルと1 dpが等しいということですか?
最後に、なぜpxの代わりにdpを使用する必要があるのですか?私はそれが理想的であることを理解していますが、なぜ?
あるデバイスの300px
は、別のデバイスの300px
と必ずしも同じ量の画面領域ではないため、(ほぼ)常に、密度に依存しないピクセルであるdp
のような柔軟なサイズ変更単位を使用する必要があります。最大の実用的な意味は、設計の対象となるデバイスとは異なる密度のデバイスでは、レイアウトが大きく異なることです。
dp
またはdip
は、密度に依存しないピクセルを意味しますdpi
またはppi
は、1インチあたりのドット(またはピクセル)を意味しますinch
は、実際の画面サイズに関連付けられた物理的な測定値ですpx
はピクセルを意味します—ピクセルは密度に応じて任意の量の画面領域を塗りつぶします。たとえば、160dpi
画面では1dp == 1px == 1/160in
ですが、240dpi
画面では1dp == 1.5px
です。いいえ、1dp != 1px
。 正確に1つのケースが1dp == 1px
の場合にあり、それは160dpi
画面上にあります。インチなどの物理的な測定単位は、決してデザインの一部である必要があります。つまり、定規を作成している場合を除きます。
1dp
のピクセル数を決定するための簡単な式は、px = dp * (dpi / 160)
です。
dpはインチのような物理的測定値です。 (はい、そうです。読んでください。)
「dpは160 dpiのピクセルの物理サイズに対応します」( https://developer.Android.com/training/multiscreen/screendensities.html#TaskUseD )
160 dpiでのピクセルの物理サイズは、正確に1/160インチです。したがって、dpのサイズは1/160インチです。 160 dp = 1インチ。
Pxは、画面上のやや任意の測定単位です。
さまざまなデバイスでdpがpxに変換される例については、次を参照してください。
Dp、dip、dpi、ppi、pixels、inchはどのように関係していますか?
Android開発の目的:
dp = dip
dpi = ppi
inch x dpi = pixels
dp = 160 x inch
dp = 160*pixels/dpi
したがって、160dpiの電話(mdpi)の場合:
2 inches = 320 dp
2 inches = 320 pixels
180 dpiの電話の場合:
2 inches = 320 dp
2 inches = 360 pixels
2インチは[〜#〜] always [〜#〜]320dpであり、画面サイズに依存しないことに注意してください。 dpは、1/160インチの物理的距離です。
Dp to pixelsの公式は興味深いです:
dp = 160*pixels/dpi
以下と同等です:
dp = pixels/(dpi/160)
dpi/160
は興味深い要素です。 Androidのmdpiビンと比較した相対密度と、さまざまなリソースビンごとにグラフィックをスケーリングする必要がある量。この要素は this ページで何度か言及されていることがわかります。0.75がldpiの要素です。
例を使用して説明します。
_float density = context.getResources().getDisplayMetrics().density;
float px = someDpValue * density;
float dp = somePxValue / density;
_
密度が等しい
_.75 on ldpi (120 dpi)
1.0 on mdpi (160 dpi; baseline)
1.5 on hdpi (240 dpi)
2.0 on xhdpi (320 dpi)
3.0 on xxhdpi (480 dpi)
4.0 on xxxhdpi (640 dpi)
_
たとえば、
_432 dpi
_( http://dpi.lv/#1920×[email protected]″ )のSamsung S5があります。
したがって、_density = 432/160 = phone's dpi/baseline = 2.7
_
私の一番上のバーが_48dp
_だとしましょう。これはbaseline (160dpi)
を参照します。
したがって、私のS5でw.r.tは_48dp * 2.7
_になります。
次に、実際の高さを確認したい場合:
_(48dp * 2.7) / 432 dpi = 0.3 inches
_になります。
DPは、画面の物理サイズのみを考慮した場合の解像度です。 DPを使用すると、異なるピクセル密度を持つ他の同様のサイズの画面にレイアウトがスケーリングされます。
ただし、実際にはピクセルが必要な場合があります。コードでディメンションを処理する場合、変換しない限り、常に実際のピクセルを処理します。