<< Android-Note
画面サイズ(ピクセル)をセンチメートルに変換するには
よく画面の解像度を表すのに400x200ピクセルのようにピクセル単位で表現することが多いと思います。
1ピクセルは何センチかは端末によって解像度が異なっているので、もしセンチ単位で長さを調べたい場合は解像度を考慮しなくてはいけません。
解像度はDPI(Dot per Inch)、つまり1インチ(= 約2.54cm)当たりのドット数で表現できます。
1センチでなく1インチとなっていることに注意してください。
なので、画面をセンチメートルに直すには画面のピクセル幅・高さをそれぞれのdpiで割ればいいことになります。
式で表すとこうなります。
センチメートル = ピクセル数 / DPI * 2.54
[ピクセル数 / DPI]がインチを表しています。
コード例
実際に画面幅と高さをセンチメートルに変換するコードは次のようになります。
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); double xCm = dm.widthPixels / dm.xdpi * 2.54; double yCm = dm.heightPixels / dm.ydpi * 2.54; Log.d("MainActivity", "幅 = " + xCm + "cm" + " 高さ = " + yCm + "cm");
まず、画面幅と高さを求めて、それをそれぞれのDPIで割ってインチを求め、それに2.54かけることでセンチに変換しています。
ピクセルをこのようにセンチまたはそれ以外の物理的な長さに直したいときは必ずDPIで割らないと正しい値は出てきません。
以上、ピクセルをセンチに変換する方法でした。では、また!
関連項目
© Kaz