風林火山

株や競馬や、アバンテ、巨人など、日々の活動や思うことを、東京からお届けします。

android ディスプレイサイズの取得

2011年07月28日 01時52分15秒 | PC
WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int width = disp.getWidth();
int height = disp.getHeight();

これでディスプレイサイズが出る。


問題はここから。

例えば、実寸値10センチの直線を引きたいなんて場合、
ディスプレイサイズによって当然ピクセル数は変わってくる。

staticに液晶のインチサイズ(対角線)から
ピタゴラスイッチ使って縦横のインチを出して、
センチに変換して、とかやってるのもあったけど、

やっぱりdynamicにやるのがスマートだと思うのでいろいろ調べた。


DisplayMetrics metrics = new DisplayMetrics();
disp.getMetrics(metrics);


んで、
metrics.ydpi; 縦方向のdpiが出るので、
これをインチからセンチに変換=2.54で割れば、
1センチ当たりのピクセル数=ドット数がでる。

問題は、最終的な描画がintなので、
floatからintにキャストするにあたって誤差がでるってこと。


10センチで、約1mmの誤差。


まあそこまで厳密なものは求めてないので、いいっちゃいいんだが。。
でもまあ1%の誤差って結構な誤差だよな、ほんとは。





最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (雑草魂)
2011-07-29 02:20:09
水泳とか一瞬の差で明暗だしね。
返信する

コメントを投稿