DisplayMetrics

displaymetrics.png

Androidは、マルチスクリーンに対応しています。
これはどういう事かというと、解像度の異なる端末でも、同じように表示させる事ができる仕組みです。
ピクセル指定で画像を作成したり、プログラム上でレイアウトを制御すると、
高解像度の端末では、横幅が足りなかったり、ボタンが小さくて押せない、といった現象が起きます。

その為、解像度の異なる端末でも、同じような見た目の大きさにしたい。
それを解決するのがdpiだ。

scaledDensity

現在の1ピクセルに対する1dpiの倍率になります。
つまり、

1ピクセル×scaledDensity=1dpiとなります。

プログラムで横幅を指定したい場合は、上記を使うと良いでしょう。

ディスプレイに表示しているフォントに対する倍率。
これはdensityと同じ。
実行時に
This is the same as density, except that it may be adjusted in smaller increments at runtime based on a user preference for the font size.
・density
⇒ディスプレイの論理的な密度。
・densityDpi
⇒インチ当たりのドット数で表した画面の密度。
・heightPixels
⇒ピクセルのディスプレイの絶対的な高さ。
・scaledDensity
⇒ディスプレイに表示されるフォントのスケーリングファクター。
・widthPixels
⇒ピクセルのディスプレイの絶対的な幅。
・xdpi
⇒X次元の画面の1インチあたりの正確な物理的なピクセル数。
・ydpi
⇒Y次元の画面の1インチあたりの正確な物理的なピクセル数。


physical-size

サポートサイト Wikidot.com physical-size