Androidでのpx、dp、spの違い


詳細
参照先:http://www.cnblogs.com/bjzhanghao/archive/2012/11/06/2757300.html
 
Android初心者一人一人がこの問題に直面すると信じています.この投稿があなたを悩ませないことを望んでいます.
px:
すなわち、1 pxは、画面上の物理的な画素点を表す.
px単位は推奨されません.同じ100 pxの画像では、携帯電話に表示される実際のサイズが異なる可能性があります.下図に示すように.
dp:
これは最もよく使われるが最も理解しにくい寸法単位である.「ピクセル密度」と密接に関連しているので、まずピクセル密度とは何かを説明します.1台の携帯電話があり、画面の物理サイズが1.5インチx 2インチ、画面解像度が240 x 320であると仮定すると、この携帯電話の画面に含まれる画素点の数は240/1.5=160 dpi(横)または320/2=160 dpi(縦)であり、160 dpiはこの携帯電話の画素密度であり、画素密度の単位dpiはDots Per Inchの略である.つまり、1インチあたりのピクセル数です.横と縦のこの値は、ほとんどの携帯電話の画面が正方形の画素点を使用しているため、同じです.
異なる携帯電話/タブレットは異なる画素密度を有する可能性があり、例えば同じ4インチ携帯電話では480 x 320解像度のものも800 x 480解像度のものもあり、前者の画素密度は比較的低い.Androidシステムは、低(120 dpi)、中(160 dpi)、高(240 dpi)、超高(320 dpi)の4つの画素密度を定義し、対応するdpからpxの係数はそれぞれ0.75、1、1.5、2であり、この係数にdpの長さを乗じて画素数である.例えば、インタフェースに「80 dp」の長さの画像がある場合、240 dpiの携帯電話では実際に80 x 1.5=120 px、320 dpiの携帯電話では実際に80 x 2=160 pxと表示される.この2台の携帯電話を一緒に比較すると、この画像の物理的なサイズは「差が少ない」ことがわかります.これはdpを単位とする効果です.下図を参照してください.
dip:
dpと全く同じで、名前が違うだけです.初期のAndroidバージョンではdipが多く使われていたが、spと統一するためにdpという名前を使うことを提案した.
sp:
スケーリングに関係のない抽象ピクセル(Scale-independent Pixel).spとdpは似ていますが、唯一の違いは、Androidシステムがユーザーに文字サイズ(小、正常、大、超大など)をカスタマイズできることです.文字サイズが「正常」の場合、1 sp=1 dp=0.00625インチ、文字サイズが「大」または「超大」の場合、1 sp>1 dp=0.00625インチです.Windowsでフォントサイズを調整した後の効果のように、ウィンドウのサイズは変更されず、文字のサイズだけが変更されます.
いくつかの比較的少ないサイズ単位があります.
mm:
つまりミリです.
in:
すなわち、インチ、1インチ=2.54センチ(約);
pt:
1 pt=1/72インチ=0.035 cm;
ベストプラクティスでは、文字のサイズはsp単位、非文字のサイズはdp単位を使用します.例えばtextSize="16 sp"、"layout_width="60dp";たまにpx単位を使用する必要があります.たとえば、画面に細い区切り線を描く必要がある場合:
<View layout_width="match_parent" layout_height="1px"/>